代码之家  ›  专栏  ›  技术社区  ›  VeeArr

在Hibernate中持久化可序列化对象

  •  3
  • VeeArr  · 技术社区  · 14 年前

    我正在尝试持久化包含一些大的 Serializable 类型。我希望Hibernate自动生成DDL(使用Hibernate注释)。在大多数情况下,这是可行的,但是Hibernate在持久化这些类型时使用的默认数据库列类型是 tinyblob 小珠

    但是,如果我手动设置类型(使用 @Column(columnDefinition="longblob") ,或更便于携带 @Column(length=500000) ),工作正常。有什么方法可以使默认的二进制类型 longblob 小珠 @Column 每个字段上的注释?

    示例Class.java:

    public class ExampleClass
    {
      @Column(columnDefinition="longblob")
      ExampleSerializable ser1;
    
      @Column(columnDefinition="longblob")
      ExampleSerializable ser2;
    
      ...
    }
    

    public class ExampleSerializable implements java.io.Serializable
    {
      // MANY Fields
    }
    

    编辑

    因为似乎有些混乱:用 (或更便于携带: @列(长度=500000)

    1 回复  |  直到 14 年前
        1
  •  3
  •   Pascal Thivent    14 年前

    我认为(没有测试它)Hibernate会根据默认为255的列长度(分别是255、65535、16777215)生成tinyblob、blob、mediumblob列。