XDR*_*XDR 5 merge hibernate jpa primary-key unique-constraint
在Hibernate 5.1.0/JPA 2.1中,有没有办法基于唯一键而不是基于主键进行合并?
我有一个唯一键的值作为外部系统的输入,但输入显然不包含我的内部主键.
我希望能够调用EntityManager#merge(entity),如果主键entity不为null,则让Hibernate/JPA使用主键进行合并,但是,如果主键为null,则使用唯一键进行合并(即, primary为null,如果唯一键对应于数据库中的行,则该行将被更新,但如果数据库中没有与唯一键对应的行,则将插入新行).
根据定义 - 即JPA 规范\xc2\xb9 文档,又名 JSR 338 - 无法注释所需的行为,其本质上可以简化为:
\n\n\n\n\n如果实体的主键不是
\nnull,则让 Hibernate / JPA 使用主键进行合并,但是,如果主键是null,则使用唯一键进行合并
上一@Entity堂课。
遗憾的是,除非将此想法制定为下一个主要 JPA 规范版本的功能请求,否则不会有真正的解决方案来满足此要求。然而,在 2019 年,短期内尝试起草 2.3 版甚至 3 版 JPA 规范的可能性极小。
\n\n尽管如此,请随时在Eclipse 基金会维护的JPA-API Github 项目中提出功能请求。
\n\n希望能帮助到你。
\n\n脚注
\n\n\xc2\xb9 在2.2版本或之前的2.1/2.0版本中
\n\n\xc2\xb2 请参阅https://projects.eclipse.org/projects/ee4j.jpa上的时间表以及相应邮件列表中的低活动量。
\n| 归档时间: |
|
| 查看次数: |
463 次 |
| 最近记录: |