如果存在不作为实体属性存在的列,休眠会崩溃吗?

Posted

技术标签:

【中文标题】如果存在不作为实体属性存在的列,休眠会崩溃吗?【英文标题】:Would hibernate crash if there is a column which does not exist as a property of entity? 【发布时间】:2021-02-12 10:56:57 【问题描述】:

假设我们有一个实体类,

Person
-------
- Name
- Surname

我们有一张桌子,

---------------

Name | Surname 

----------------

然后在不改变实体类的情况下,我们改变表并向表中添加一列,(使用选项not null false

----------------------

Name | Surname | Age 

----------------------

我的问题是在不更改任何代码的情况下,像上面那样更改数据库会影响休眠运行时吗?

例如,获取或保存人员对象会因为数据库更改而导致运行时崩溃?

【问题讨论】:

【参考方案1】:

Hibernate 忽略未映射的列。所以你的Age 列不会影响任何事情。

但是如果该列没有空约束并且没有默认值,那么休眠插入查询将失败。

【讨论】:

以上是关于如果存在不作为实体属性存在的列,休眠会崩溃吗?的主要内容,如果未能解决你的问题,请参考以下文章

实体上的休眠预设ID,无法使其持续存在

大型连通图上的休眠 SaveOrUpdate

传递给持久化的休眠分离实体

休眠保存或更新行为

休眠:外键的列数错误

休眠级联持续存在:执行隔离工作时出错