首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有一种基于唯一键而不是主键(在Hibernate中)合并JPA实体的方法?

是否有一种基于唯一键而不是主键(在Hibernate中)合并JPA实体的方法?
EN

Stack Overflow用户
提问于 2016-03-09 20:15:22
回答 1查看 817关注 0票数 7

在Hibernate 5.1.0 /JPA2.1中,是否存在基于唯一键而不是基于主键的合并方法?

我有作为外部系统输入的唯一键的值,但是输入显然不包含我的内部主键。

我希望能够调用EntityManager#merge(entity),如果entity的主键不是null,则Hibernate / JPA使用主键进行合并,但是,如果主键为null,则使用唯一键合并(即如果主键为null,而唯一键对应于数据库中的行,则行将被更新,但如果数据库中没有与唯一键对应的行,则将插入一个新行)。

EN

回答 1

Stack Overflow用户

发布于 2019-05-19 07:28:48

根据定义--即JPA规范1 1文档,又名JSR 338 --没有没有方式来注释所期望的行为,本质上可以简化为:

如果实体的主键不是null__,则让Hibernate / JPA使用主键合并,如果主键是null__,则使用https://en.wikipedia.org/wiki/Unique_key合并

转到@Entity类。

遗憾的是,除非将这种想法表述为下一个主要JPA规范发布的特性请求,否则就不会有真正的解决方案。然而,在2019年,极不可能在不久的任何时候尝试起草2.3版甚至3版的JPA规范。

尽管如此,您还是可以在Eclipse维护的JPA-API Github项目上提出一个特性请求。

希望能帮上忙。

脚注

在2.2版或以前的2.1/2.0版本中

2见https://projects.eclipse.org/projects/ee4j.jpa时刻表和相应邮件列表中活动量低的情况。

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

https://stackoverflow.com/questions/35901677

复制
相关文章

相似问题

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