最近学习Spring boot JPA 学习过程解决的一些问题写成随笔,大家一起成长。
这次遇到自定义主键的问题
1 packagejavax.persistence;2
3 public enumGenerationType {4 TABLE,5 SEQUENCE,6 IDENTITY,7 AUTO;8
9 privateGenerationType() {10 }11 }
GenerationType源码
从源码中可以看出JPA提供的四种标准主键策略TABLE,SEQUENCE,IDENTITY,AUTO
TABLE:使用一个特定的数据库表格来保存主键。
SEQUENCE:根据底层数据库的序列来生成主键,条件是数据库支持序列。 这个值要与generator一起使用,generator 指定生成主键使用的生成器(可能是orcale中自己编写的序列)。
IDENTITY:主键由数据库自动生成(主要是支持自动增长的数据库,如mysql)
AUTO:主键由程序控制,也是GenerationType的默认值。
不写GeneratedValue注解时即为Generat