Jpa jadira usertype PersistentLocalTimeAsString将LocalTime另存为tinyblob
我有一个JPA实体,带有Jpa jadira usertype PersistentLocalTimeAsString将LocalTime另存为tinyblob,jpa,jodatime,Jpa,Jodatime,我有一个JPA实体,带有org.joda.time.LocalTime变量。我使用Hibernate作为JPA实现,使用jadira用户类型处理JodaTime类,因此我的变量定义为: @Type(type="org.jadira.usertype.dateandtime.joda.PersistentLocalTimeAsString") private LocalTime startTime; 当Hibernate为该变量创建列时,它使用tinyblob而不是varchar,对吗 如果正确
org.joda.time.LocalTime
变量。我使用Hibernate作为JPA实现,使用jadira用户类型处理JodaTime类,因此我的变量定义为:
@Type(type="org.jadira.usertype.dateandtime.joda.PersistentLocalTimeAsString")
private LocalTime startTime;
当Hibernate为该变量创建列时,它使用tinyblob而不是varchar,对吗
如果正确,是否有类将
LocalTime
保存为varchar?如果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用户类型
编辑
@Type(type="dateAsString")
@Column(columnDefinition = "VARCHAR")
private LocalTime startTime;
如果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用户类型
编辑
@Type(type="dateAsString")
@Column(columnDefinition = "VARCHAR")
private LocalTime startTime;
jadira用户类型存在,因为我将其用于其他内容…但用于
LocalDate
或DateTime
(可以从数据库类型RAP呈现的类很好…问题是不能从标准类型RAP呈现的LocalTime
很好!但是使用这种方法,如果我切换数据库,我必须更改它…你知道是否可以用另一种方式吗?@rascio我不知道为什么基本代码可以与Loc一起工作alDate
不适用于LocalTime
,对我来说是pazzle。我只能建议使用这种方式Jadira用户类型,因为我将其用于其他内容…但用于LocalDate
或DateTime
(可以从数据库类型RAP呈现的类很好…问题是不能从标准类型RAP呈现的LocalTime
很好!但是使用这种方法,如果我切换数据库,我必须更改它…你知道是否可以用另一种方式吗?@rascio我不知道为什么基本代码可以与Loc一起工作alDate
不适用于LocalTime
,它适合我。我只能这样提议