@GeneratedValue
@sunRainAmazing
hibernate注解 @GeneratedValue
提供主键值的生成策略的规范。
所述@GeneratedValue注释可以应用于实体的主键属性或字段或与结合@Id注释。
@GeneratedValue注释的使用只需要支持简单的主键。
使用 注释@GeneratedValue不支持派生主键。
两个属性
① generator --- java.lang.String
在指定的使用(可选)主键生成器的名称SequenceGenerator 或TableGenerator注解。
② strategy --- GenerationType
(可选)持久性提供程序必须用于生成注释实体主键的主键生成策略。
GenerationType 的值。
Strategy - 表示主键生成策略,取值有:
GenerationType.AUTO
- 根据底层数据库自动选择(默认),若数据库支持自动增长类型,则为自动增长。
GenerationType.INDENTITY
- 根据数据库的Identity字段生成,支持DB2、MySQL、 MS、SQL
- Server、SyBase与HyperanoicSQL数据库的Identity 类型主键。
GenerationType.SEQUENCE
- 使用Sequence来决定主键的取值,适合Oracle、DB2等支持Sequence的数据库,
- 一般结合@SequenceGenerator使用。
- -- 注:(Oracle没有自动增长类型,只能用Sequence)
GenerationType.TABLE
- 使用指定表来决定主键取值,结合@TableGenerator使用。
例如:
@Id
@GeneratedValue(strategy =
GenerationType.INDENTITY)
private int id;