1

我有一个带有org.joda.time.LocalTime变量的 JPA 实体。我使用 Hibernate 作为 JPA 实现和 jadira 用户类型来处理 JodaTime 类,所以我的变量的定义是:

@Type(type="org.jadira.usertype.dateandtime.joda.PersistentLocalTimeAsString")
private LocalTime startTime;

当 Hibernate 为该变量创建列时,它使用tinyblob而不是varchar,对吗?

如果是正确的,是否有一些类可以将 a 保存LocalTimevarchar

4

1 回答 1

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;
于 2013-06-18T07:35:52.467 回答