@GeneratedValue 注解详解

时间:2020-08-21 09:22:09 类型:JAVA
字号:    

  springboot中@GeneratedValue作用:

  (1)、@GeneratedValue注解存在的意义主要就是为一个实体生成一个唯一标识的主键、@GeneratedValue提供了主键的生成策略。

  (2)、@GeneratedValue注解有两个属性,分别是strategy和generator,

  generator属性:

  generator属性的值是一个字符串,默认为"",其声明了主键生成器的名称

  (对应于同名的主键生成器@SequenceGenerator和@TableGenerator)。

  strategy属性:提供四种值:

  -AUTO主键由程序控制, 是默认选项 ,不设置就是这个

  -IDENTITY 主键由数据库生成, 采用数据库自增长, Oracle不支持这种方式

  -SEQUENCE 通过数据库的序列产生主键, MYSQL  不支持

  -Table 提供特定的数据库产生主键, 该方式更有利于数据库的移植

  注意:默认SpringBoot的@GeneratedValue 是不需要加参数的,但是如果数据库控制主键自增(auto_increment), 不加参数就会报错

  @Id    @GeneratedValue(strategy = GenerationType.IDENTITY)    private int id;


<