我有一个org.joda.time.LocalTime
变量的JPA实体。我正在使用Hibernate作为JPA实现,并使用jadira usertype来处理JodaTime类,因此我的变量的定义是:
@Type(type="org.jadira.usertype.dateandtime.joda.PersistentLocalTimeAsString")
private LocalTime startTime;
当Hibernate为该变量创建列时,它使用 tinyblob 而不是 varchar ,是不是?
如果它是正确的,是否有一些类将LocalTime
保存为 varchar ?
答案 0 :(得分:1)
如果Hibernate无法找到列的用户类型,则会发生此行为。
1)使用TypeDef
来避免拼写错误
@TypeDefs(
{
@TypeDef(name = "dateAsString", typeClass = org.jadira.usertype.dateandtime.joda.PersistentLocalTimeAsString.class
}
public class MyClass {
@Type(type="dateAsString")
private LocalTime startTime;
如果类路径中没有PersistentLocalTimeAsString
,则会出现编译错误。
2)检查类路径中是否存在jadira-usertype。
编辑
@Type(type="dateAsString")
@Column(columnDefinition = "VARCHAR")
private LocalTime startTime;