首页 >Java >java教程 >Hibernate JPA 可以对非 ID 列使用序列吗?

Hibernate JPA 可以对非 ID 列使用序列吗?

DDD
DDD原创
2024-11-30 20:44:22767浏览

Can Hibernate JPA Use Sequences for Non-ID Columns?

非标识符列的 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn