我想用@OrderColumn
更新现有的模型。因为表中已经存在数据,所以我想将其设置为nullable
,这是默认值。
@ManyToMany(fetch = FetchType.EAGER)
@OrderColumn(name = "widget_order", nullable = true)
private List<Widget> widgets = new ArrayList<>();
但是,更新失败的消息如下:
org.hibernate.tool.schema.spi.SchemaManagementException:
Unable to execute schema management to JDBC target
[alter table Dashboard_Widget add widget_order number(10,0) not null]
为什么hibernate仍然试图使order列不可空,我需要做什么来修复它?
发布于 2017-11-24 08:32:45
通过创建新数据库并将其与当前数据库进行比较,我发现了潜在的问题。
我不知道的是,数据结构以前是一个Set
。生成的组合主键由两个对象的ids组成。随着对List
的更改,唯一性不再得到保证,尽管它实际上是唯一的。因此,新的组合主键不再包含小部件id,而是包含订单值。
这最终产生了NULL约束。
https://stackoverflow.com/questions/47468133
复制相似问题