@GeneratedValue主键并没有自增

学习springboot中的数据库操作,用到data-jpa,创建实体类的时候需要添加主键的注解以及自增
开始是这样写的:

import javax.persistence.GeneratedValue
import javax.persistence.Id

@Id
@GeneratedValue
private Integer id;

但是结果并不是预期想象的那样
这里会生成两张表
@GeneratedValue主键并没有自增_第1张图片
其中girl是我需要创建的表,这个hibernate_sequence是什么鬼?应该是个需要创建的表的一个排序吧,猜测的,先不管这个
而且并没有自增!
为什么会这样呢?
了解一下@GeneratedValue这个注解:
它有一个属性:strategy,意思很明显,就是一种策略,它有四个属性值:

IDENTITY    //采用数据库ID自增长的方式来自增主键字段,Oracle 不支持这种方式; 
AUTO        //JPA自动选择合适的策略,是默认选项; 
SEQUENCE    //通过序列产生主键,通过@SequenceGenerator 注解指定序列名,MySql不支持这种方式 
TABLE       //通过表产生主键,框架借由表模拟序列产生主键,使用该策略可以使应用更易于数据库移植。

为了达到我们的要求,这里我们改成@GeneratedValue(strategy = GenerationType.IDENTITY) 就可以了

参考:
https://blog.csdn.net/qq_15037231/article/details/78284884

你可能感兴趣的:(java,web)