JPA注解-@SequenceGenerator
时间: 2024-01-01 09:06:59 浏览: 354
@SequenceGenerator是JPA提供的一个注解,用于定义一个序列生成器。在数据库中,序列(Sequence)是一种用于生成唯一数值的对象,通常用于生成主键ID。
使用@SequenceGenerator注解可以让JPA自动地为实体生成序列值,从而实现主键的自动生成。
@SequenceGenerator注解有以下属性:
- name:序列生成器的名称,必须唯一。
- sequenceName:指定数据库中的序列名称,如果不指定则默认为hibernate_sequence。
- initialValue:序列的初始值,默认为1。
- allocationSize:每次从序列中获取值的数量,默认为50。
示例代码如下:
```
@Entity
@SequenceGenerator(name = "my_seq", sequenceName = "MY_SEQ", initialValue = 1, allocationSize = 1)
public class MyEntity {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "my_seq")
private Long id;
// other fields and methods
}
```
在上面的代码中,@SequenceGenerator定义了一个名为“my_seq”的序列生成器,它的序列名称为“MY_SEQ”,初始值为1,每次从序列中获取一个值。
@Id注解用于标识实体的主键,@GeneratedValue注解用于指定主键的生成策略,strategy属性指定了使用序列生成器,generator属性指定了使用哪个序列生成器。
阅读全文