Java Hibernate在我的数据库中将joda时间列随机生成为小水滴

Java Hibernate在我的数据库中将joda时间列随机生成为小水滴,java,hibernate,jodatime,Java,Hibernate,Jodatime,我有一点奇怪的情况发生,我似乎无法理解 我有一组Hibernate注释的实体类,上面有Jodatime日期时间字段。当hibernate生成我的模式时,一些日期时间字段在MySQL中被正确设置为DateTime列,而其他字段则被创建为小blob。我正在使用Usertype库为我做类型映射,但是我已经用joda time hibernate库尝试过了,我得到了相同的结果。奇怪的是,这些列在我的代码中声明的方式都是相同的 这个会生成一个小水滴,而不是日期时间: @Type(type="org.jad

我有一点奇怪的情况发生,我似乎无法理解

我有一组Hibernate注释的实体类,上面有Jodatime日期时间字段。当hibernate生成我的模式时,一些日期时间字段在MySQL中被正确设置为DateTime列,而其他字段则被创建为小blob。我正在使用Usertype库为我做类型映射,但是我已经用joda time hibernate库尝试过了,我得到了相同的结果。奇怪的是,这些列在我的代码中声明的方式都是相同的

这个会生成一个小水滴,而不是日期时间:

@Type(type="org.jadira.usertype.dateandtime.joda.PersistentDateTime")
private DateTime respondedTime;
但是,另一个类中的这个类正确地生成了日期时间列:

@Type(type="org.jadira.usertype.dateandtime.joda.PersistentDateTime")
private DateTime date;
所以我想知道是否有人经历过类似的事情发生在他们身上,或者他们是否知道如何确保Hibernate为我的DateTime字段生成DateTime列


如果有任何不同,我将在hibernate 3.6.0中使用usertype 1.8版和jodatime 1.6版。最终

如果hibernate找不到列的用户类型,或者当
usertype
实现认为无法处理该类型时,就会发生此行为

因此,要么参数上有一个类型,要么
UserType
中有一个bug,要么
DateTime
在这两个地方是不同的类型

为了避免输入错误,我建议使用
@TypeDefs
为用户类型创建更可读的名称


请参阅。

正如注释中提到的@jthalbom,这是一个类路径问题。我清理了加载到我的类路径上的罐子,瞧,问题解决了

嗯。因此,我运行了所有导入和类型字符串,以确保我使用的是jodatime DateTime对象,并且在我的所有日期上都指定了正确的用户类型,并且它仍然以tinyblob的形式出现。@Michael-但是,在hibernate生成架构时,您是否检查了类路径。这可能就是问题所在。问题看起来可能是一个类路径问题,因为我进行了一些重构,并使我的所有实体都从映射的超类继承,因此问题似乎得到了解决。我会再深入一点,看看到底发生了什么。但我认为你在课堂路径问题上是正确的。