使用JPA将某些字段的值设置为null
在jpa合并中,是所有列都更新了,还是只更新了具有新值的列使用JPA将某些字段的值设置为null,jpa,merge,Jpa,Merge,在jpa合并中,是所有列都更新了,还是只更新了具有新值的列 更新时,如果我将某个属性的值设置为null,则null值将以db形式存储在该克隆中,还是保留以前的值?合并实体X时,X的整个状态将被“合并”(当然,如果X是有效的“候选对象”)。JPA 1.0规范是这样描述的: 3.2.4.1合并分离实体状态 合并操作允许 分离态的传播 将实体转换为持久实体 由EntityManager管理 合并操作的语义 适用于实体X的参数如下: 如果X是分离的实体,将X的状态复制到预先存在的实体上 同一实体的托管
更新时,如果我将某个属性的值设置为null,则null值将以db形式存储在该克隆中,还是保留以前的值?合并实体X时,X的整个状态将被“合并”(当然,如果X是有效的“候选对象”)。JPA 1.0规范是这样描述的: 3.2.4.1合并分离实体状态 合并操作允许 分离态的传播 将实体转换为持久实体 由EntityManager管理 合并操作的语义 适用于实体X的参数如下:
- 如果X是分离的实体,将X的状态复制到预先存在的实体上 同一实体的托管实体实例X' 标识或X的新托管副本X' 是创建的
- 如果X是一个新的实体实例,则会创建一个新的托管实体实例X' X的状态被复制到 新的托管实体实例X'
- 如果X是一个已删除的实体实例,则将生成一个
由合并操作(或 事务提交将失败)IllegalArgumentException
- 如果X是托管实体,则合并操作将忽略它,
但是,合并操作是无效的
级联到引用的实体
来自X的关系,如果这些
已使用注释对关系进行了注释
级联元素值
或cascade=MERGE
注释cascade=ALL
- 对于X中关系引用的所有实体Y,具有
级联元素值
或cascade=MERGE
,Y递归合并 如“Y”。对于所引用的所有此类Y 十、 X'设置为参考Y'。(注 如果X被管理,那么X就是 与X'相同的对象。)cascade=ALL
- 如果X是一个合并到X'的实体,并引用另一个实体Y,其中
或cascade=MERGE
是 未指定,则为 X'的相同关联产生a 对托管对象Y'的引用,带有 与Y相同的持久标识cascade=ALL
版本
列
实体必须由
持久性运行时实现
在合并操作期间和/或在
刷新或提交时间。缺席
在版本
列中没有
由执行的附加版本检查
持久性提供程序运行时
在合并操作期间
这与你之前的问题高度相关: