@GeneratedValue和@SequenceGenerator介绍

来源:互联网 发布:设计淘宝网店 编辑:程序博客网 时间:2024/05/16 10:47


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

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

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

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


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

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









原创粉丝点击