非标识符列的 Hibernate JPA 序列
问题:
是否可行利用数据库序列为未指定为标识符或组件的表列生成值使用 Hibernate JPA 的复合标识符?
答案:
Hibernate JPA 不支持未指定为标识符的属性的自动值生成。 @GenerateValue 注解专门与 @Id 结合使用来创建自动递增值。
解决方法:
要规避此限制,请考虑创建一个单独的实体生成的标识符,例如:
@Entity public class GeneralSequenceNumber { @Id @GeneratedValue(...) private Long number; } @Entity public class MyEntity { @Id .. private Long id; @OneToOne(...) private GeneralSequnceNumber myVal; }
这种方法涉及在主实体和实体之间建立一对一的关系序列实体。通过利用这个单独的实体,Hibernate 可以生成唯一的序列值,该值可以分配给主实体中所需的属性。
以上是Hibernate JPA 可以对非 ID 列使用序列吗?的详细内容。更多信息请关注PHP中文网其他相关文章!