在JPA或Hibernate中,是否可以根据主键以外的唯一键将新实体(没有主键值)合并到持久化上下文中?
或者所有JPA / Hibernate合并仅在主键上执行?
如果通过简单的方法调用无法做到这一点,那么我唯一的选择是:
@UniqueConstraint
注释的静态方法,并根据@UniqueConstraint
中的属性搜索现有实体。我尝试合并到为@UniqueConstraint
找到的第一个实体。如果没有匹配,那么我可以坚持新实体。答案 0 :(得分:0)
Hibernate只需要@Id
属性的唯一键,虽然通常主键用于此目的,但您可以使用@Id
属性的任何唯一键。
此外,您可以使用@Id
属性的主键和@NaturalId
的唯一键。您可以通过其natural-id获取实体,然后将其合并到不同的Session
中,因为合并需要实体而不是标识符。