如何使用' ddl-auto = update'添加新列和' nullable = false'

时间:2015-11-14 19:41:47

标签: java hibernate postgresql

如果我将这样的列添加到现有实体,则hibernate无法添加列,因为存在没有值的现有行:

@Column(name = "width", nullable = false)
private int width;

因此错误而失败:

2015-11-14 20:33:41.163 ERROR 9068 --- [ost-startStop-1] org.hibernate.tool.hbm2ddl.SchemaUpdate  : HHH000388: Unsuccessful: alter table texture add column width int4 not null
2015-11-14 20:33:41.163 ERROR 9068 --- [ost-startStop-1] org.hibernate.tool.hbm2ddl.SchemaUpdate  : FEHLER: Spalte „width“ enthält NULL-Werte

我不想在数据库列定义中使用默认值。

1 个答案:

答案 0 :(得分:3)

您必须使用现有数据更改表,因此如果列不可为空,则无法向现有行添加列,并且未指定默认值。

所以我认为您需要允许为空或指定默认值,您没有其他选择......