首页 > Java > java教程 > 如何在 Hibernate JPA 中为非 ID 列生成数据库序列?

如何在 Hibernate JPA 中为非 ID 列生成数据库序列?

Linda Hamilton
发布: 2024-11-30 07:03:19
原创
831 人浏览过

How Can I Generate Database Sequences for Non-ID Columns in Hibernate JPA?

在 Hibernate JPA 中使用非 ID 列的数据库序列

当使用 Hibernate 作为 JPA 提供程序时,您可能会遇到以下需求为不属于标识符的列生成值。不幸的是,通常用于自动递增主键的 @GenerateValue 注释在这种情况下不适用。

首先,了解 Hibernate/JPA 不会自动生成非 ID 属性的值非常重要。 @GenerateValue 注解仅用于管理主键生成。相反,需要数据库生成的值。

要克服此限制,请考虑使用生成的标识符创建一个单独的实体,称为“代理键实体”。然后,可以使用 OneToOne 关系将相关非 ID 列与此代理实体相关联。

示例实现:

// Surrogate Key Entity
@Entity
public class SurrogateEntity {
  @Id
  @GeneratedValue(...)
  private Long number;
}

// Main Entity
@Entity
public class MyEntity {
  @Id
  private Long id;

  @OneToOne(...)
  private SurrogateEntity myVal;
}
登录后复制

通过这种方法,值myVal 属性将在创建新的 MyEntity 实例时由数据库生成。此解决方法允许您利用 Hibernate 的数据库生成的值处理非 ID 列的功能。

以上是如何在 Hibernate JPA 中为非 ID 列生成数据库序列?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板