简述JPA实现主键生成策略(第七章面试题2)
答:需要生成主键的属性上加@GeneratedValue 默认情况下,JPA 自动选择一个最适合底层数据库的主键生成策略:
SqlServer 对应 identity
MySQL 对应 auto increment。
Strategy指定了主键生成策略,默认是Auto,还可以取值IDENTITY、SEQUENCE、TABLE
IDENTITY:采用数据库 ID自增长的方式来自增主键字段,Oracle 不支持这种方式;
AUTO: JPA自动选择合适的策略,是默认选项;
SEQUENCE:通过序列产生主键,通过 @SequenceGenerator 注解指定序列名,MySql 不支持这种方式
TABLE:通过表产生主键,框架借由表模拟序列产生主键,使用该策略可以使应用更易于数据库移植。