当前位置: 首页 > 面试题库 >

Hibernate类型解析器

左丘成业
2023-03-14
问题内容

我知道hibernate最近在3.6中重做了它的类型系统。我认为这现在允许您将Java类与类型(或UserType)相关联。例如,我使用joda-
time并具有几个UserType,它们将LocalDate和LocalDateTime映射到适当的SQL类型。

当使用对象时,这很好用,但是如果我想传递一个joda类型作为HQL参数,hibernate就会感到困惑,所以我必须记得每次打电话时都要提供Type。

query.setParameter( "now", new LocalDateTime(), Hibernate.custom( LocalDateTimeType.class ) );

我认为现在可以在Configuration / SessionFactory设置阶段说LocalDateTime->
LocalDatetimeType,但是我不确定如何执行此操作。我找到了TypeResolver,但是难以理解我应该调用哪种方法来实现此目的。

或者,即使使用3.6中的新类型内容也无法解决此问题,请纠正我。


问题答案:

回答我自己的问题。

知道如何就足够简单。

configuration.getTypeResolver().registerTypeOverride( LocalDateTimeType.TYPE, new String[]{ LocalDateTime.class.getName() } );
configuration.getTypeResolver().registerTypeOverride( LocalDateType.TYPE, new String[]{ LocalDate.class.getName() } );

未知类型的TypeResolver查找使用类名,因此在注册键完成该工作时注册类的全名。



 类似资料:
  • 问题内容: 我知道休眠最近在3.6中重做了它的类型系统。我认为这现在允许您将Java类与类型(或UserType)相关联。例如,我使用joda- time并具有几个UserType,它们将LocalDate和LocalDateTime映射到适当的SQL类型。 当使用对象时,这很好用,但是如果我想传递一个joda类型作为HQL参数,hibernate会感到困惑,所以我必须记住每次打电话时都要提供Ty

  • GraphQL中有几个地方需要解析,而不仅仅是中的。 后端API- -用户列表-最少信息-姓名、id 构建一个架构来执行以下查询 模式可以如下- 上述模式中的解析器需要在两个不同的地方包含/处理用户详细信息获取调用。1.用户列表-和2.。必须记住处理这种类型,其中您只有一个用户ID将其转换为实际用户。 在撰写本文时,GraphQL支持和上的。不可能为整个指定解析器-只有中的可以具有解析器。因此,如

  • 我对JSP是新手。我正在学习useBean方法,在 http://www.studytonight.com/jsp/getproperty-tag.php 我得到了一个错误:在jsp文件中:/hello1的第5行发生了一个错误。jsp PersonBean无法解析为类型

  • 问题内容: 这是我得到的错误: 这是我的代码: 另外,我在一个单独的类中声明了这一点: 是什么导致此错误,我该如何解决? 编辑:缩进,空格,命名约定和可读性问题已得到解决。 问题答案: 问题在于,这似乎是一个内部类(很难说,您的缩进是不好的),并且由于它不是静态的,因此您无法单独实例化它。 您要么需要自己创建一个类,要么使其成为一个类并将其实例化为(或者无论父类是什么,您的缩进在这里实际上都没有帮

  • 问题内容: 尝试遵循本教程:教程 尝试像这样使用 JSONParser : 但是Eclipse给了我。 该怎么办? 问题答案: JSONParser类在本教程的下方,它看起来像这样…… 我会考虑看看杰克逊图书馆通过http://jackson.codehaus.org/