gpt4 book ai didi

java - Hibernate 类型解析器

转载 作者:太空狗 更新时间:2023-10-29 22:57:28 25 4
gpt4 key购买 nike

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

这在处理对象时工作正常,但如果我想将 joda 类型作为 HQL 参数传递,hibernate 会感到困惑,所以我必须记住每次调用时都提供类型。

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 查找使用类名,因此将类的全名注册为 registrationKey 即可。

关于java - Hibernate 类型解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4725719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com