10、实体映射与标识符生成策略详解

实体映射与标识符生成策略详解

1. 实体标识符映射基础

在没有候选键的常见情况下,使用专门的主键列是合适的。实际上,数据库模式中的每个表都应该有一个专门用于此目的的代理主键列。生成代理键值有多种知名方法,可通过 @GeneratedValue 注解进行配置。

@Id 注解用于标记实体类的标识符属性。若没有 @GeneratedValue 注解,JPA 提供程序会认为你将在保存实例之前自行创建并分配标识符值,这称为应用程序分配标识符。在处理遗留数据库和/或自然主键时,手动分配实体标识符是必要的。

若希望系统在保存实体实例时生成主键值,可在 @Id 旁边添加 @GeneratedValue 注解。JPA 通过 javax.persistence.GenerationType 枚举标准化了几种值生成策略,可通过 @GeneratedValue(strategy = ...) 进行选择:
- GenerationType.AUTO :Hibernate 会根据配置的数据库 SQL 方言选择合适的策略,等同于 @GeneratedValue() 无任何设置。
- GenerationType.SEQUENCE :Hibernate 期望(若使用工具会创建)数据库中有一个名为 HIBERNATE_SEQUENCE 的序列,每次 INS

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值