springboot中@GeneratedValue作用:
(1)、@GeneratedValue注解存在的意義主要就是為一個實體生成一個唯一標識的主鍵、@GeneratedValue提供了主鍵的生成策略。
(2)、@GeneratedValue注解有兩個屬性,分別是strategy和generator,
generator屬性:
generator屬性的值是一個字符串,默認為"",其聲明了主鍵生成器的名稱
(對應(yīng)于同名的主鍵生成器@SequenceGenerator和@TableGenerator)。
strategy屬性:提供四種值:
-AUTO主鍵由程序控制, 是默認選項 ,不設(shè)置就是這個
-IDENTITY 主鍵由數(shù)據(jù)庫生成, 采用數(shù)據(jù)庫自增長, Oracle不支持這種方式
-SEQUENCE 通過數(shù)據(jù)庫的序列產(chǎn)生主鍵, MYSQL 不支持
-Table 提供特定的數(shù)據(jù)庫產(chǎn)生主鍵, 該方式更有利于數(shù)據(jù)庫的移植
注意:默認SpringBoot的@GeneratedValue 是不需要加參數(shù)的,但是如果數(shù)據(jù)庫控制主鍵自增(auto_increment), 不加參數(shù)就會報錯
@Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id;