@GeneratedValue注解出现的目的:
1,@GeneratedValue注解存在的意义主要就是为一个实体生成一个唯一标识的主键(JPA要求每一个实体Entity,必须有且只有一个主键),@GeneratedValue提供了主键的生成策略。
2,@GeneratedValue注解有两个属性,分别是strategy和generator,其中generator属性的值是一个字符串,默认为"",其声明了主键生成器的名称(对应于同名的主键生成器@SequenceGenerator和@TableGenerator)。
来源: https://blog.csdn.net/CoderTnT/article/details/81178496
@GeneratedValue时不需要加参数的,但是如果数据库控制主键自增(auto_increment),不加参数就会报错。
@GeneratedValue(strategy=GenerarionType.IDENINY)
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
或者
@GeneratedValue
private Integer id;
@GeneratedValue注解的strategy属性提供四种值:
AUTO主键由程序控制,是默认选项。
IDENTITY主键由数据库生成,采用数据库自增长,Oracle不支持。
Oracle根据SEQUENCE通过数据库的序列产生主键,MYSQL不支持。