如何使用hibernate自动增加数据库中的字符变化长度?

时间:2014-12-12 11:44:32

标签: java hibernate

@Entity
public class MyEntity {
     @Column(length = 2)
     private String name;
}

这会在db中创建character varying(2)。当我将长度更改为更大的值(例如5)时,数据库不会更改。

hibernate是否有可能实际修改长度(至少扩展)?

2 个答案:

答案 0 :(得分:0)

尝试hbm2ddl.auto = update,然后它应该更新表。但要小心这个功能。

答案 1 :(得分:0)

<强> hibernate.hbm2ddl.auto

此功能取决于JDBC驱动程序提供的元数据的质量,JDBC驱动程序缺少许多驱动程序。

Hibernate文档也建议

  

SchemaUpdate工具将使用更新现有架构   “增量”变化。 SchemaUpdate依赖于JDBC元数据   API,因此不适用于所有JDBC驱动程序。

似乎是增量更新的驱动程序支持问题。另外,支持更新列的数据类型也没有意义。如果修改后的列数据类型是早期数据类型的缩小版本,现有数据会发生什么。