【发布时间】:2011-03-05 02:51:51
【问题描述】:
我正在尝试持久化包含一些大型 Serializable 类型的对象。我希望 Hibernate 自动生成我的 DDL(使用 Hibernate 注释)。在大多数情况下,这是可行的,但是 Hibernate 在持久化这些类型时使用的默认数据库列类型是tinyblob。不幸的是,这会在尝试持久化我的课程时导致崩溃,因为这些类型不适合tinyblob 的长度。
但是,如果我手动设置类型(使用@Column(columnDefinition="longblob"),或者更便携的@Column(length=500000)),它可以正常工作。有没有办法让默认的二进制类型longblob代替tinyblob,这样就不用在每个字段上手动指定@Column注解了?
ExampleClass.java:
public class ExampleClass
{
@Column(columnDefinition="longblob")
ExampleSerializable ser1;
@Column(columnDefinition="longblob")
ExampleSerializable ser2;
...
}
ExampleSerializable.java:
public class ExampleSerializable implements java.io.Serializable
{
// MANY Fields
}
编辑
由于似乎有些混乱:用@Column(columnDefinition="longblob")(或更便携:@Column(length=500000))注释每个字段,已经可以了。我正在寻找一种不需要我注释每个字段的解决方案。
【问题讨论】: