首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Hibernate不会用可空的OrderColumn更新表。

Hibernate不会用可空的OrderColumn更新表。
EN

Stack Overflow用户
提问于 2017-11-24 07:17:07
回答 1查看 361关注 0票数 1

我想用@OrderColumn更新现有的模型。因为表中已经存在数据,所以我想将其设置为nullable,这是默认值。

代码语言:javascript
运行
复制
@ManyToMany(fetch = FetchType.EAGER)
@OrderColumn(name = "widget_order", nullable = true)
private List<Widget> widgets = new ArrayList<>();

但是,更新失败的消息如下:

代码语言:javascript
运行
复制
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列不可空,我需要做什么来修复它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-24 08:32:45

通过创建新数据库并将其与当前数据库进行比较,我发现了潜在的问题。

我不知道的是,数据结构以前是一个Set。生成的组合主键由两个对象的ids组成。随着对List的更改,唯一性不再得到保证,尽管它实际上是唯一的。因此,新的组合主键不再包含小部件id,而是包含订单值。

这最终产生了NULL约束。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47468133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档