@GeneratedValue和@SequenceGenerator介绍

@GeneratedValue和@SequenceGenerator是JPA标准注解,GeneratedValue用来定义主键生成策略,SequenceGenerator用来定义一个生成主键的序列;它们要联合使用才有效。下面介绍一个使用Oracle序列生成主键的方法

1、数据库中先定义一个Oracle序列,如名字为SEQ_BDF2_USER

2、在Entity实体类中通过使用注解@SequenceGenerator声明定义好的序列SEQ_BDF2_USER,名称为ID_SEQ。有两种声明方法,可以在类前面进行声明,也可以在字段上进行声明,如图:

@GeneratedValue和@SequenceGenerator介绍_第1张图片

@GeneratedValue和@SequenceGenerator介绍_第2张图片

3、在主键字段id上使用注解GeneratedValue定义主键生成策略为序列,并引用声明好的序列ID_SEQ。如图:

@GeneratedValue和@SequenceGenerator介绍_第3张图片

 

@SequenceGenerator — 注解声明了一个数据库序列。

属性:
name - 表示该表主键生成策略名称,它被引用在@GeneratedValue中设置的“gernerator”值中。
sequenceName - 表示生成策略用到的数据库序列名称。
initialValue - 表示主键初始值,默认为0.
allocationSize - 每次主键值增加的大小,例如设置成1,则表示每次创建新记录后自动加1,默认为50.

你可能感兴趣的:(数据库)