JPA中的主键生成策略决定了如何为实体类生成主键值,并将其映射到数据库表的主键字段上。常用的主键生成策略包括 GenerationType.IDENTITY 、 GenerationType.AUTO 、 GenerationType.SEQUENCE 和 GenerationType.TABLE 。
1. GenerationType.IDENTITY
主键由数据库自动生成,适用于自增主键字段。
@Entity
public class Product {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
}
2. GenerationType.AUTO
由JPA提供者根据数据库支持情况自动选择适合的主键生成策略,通常也是自增主键。
@Entity
public class Product {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
}
3. GenerationType.SEQUENCE
通过序列生成主键,适用于一些数据库不支持自增主键的情况。
@Entity
public class Product {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private Long id;
}
4. GenerationType.TABLE
使用一个特定的数据库表来保存主键值,适用于跨数据库移植的情况。
@Entity
public class Product {
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
private Long id;
}
原文链接: https://blog.csdn.net/2401_82884096/article/details/138038443