在spring数据中jpa Application我用@entity注释创建了一个模型。我将该模型数据保存到表中。我正在自动递增主键。但是当我将数据保存到表中时,它不是按顺序自动递增的。
<ul id="ul-graellatab-list" class="tabs">
<li><a href="#" class="tabs_menu default">Temperature</a></li>
<li><a href="#" class="tabs_menu">Humidity</a></li>
<li><a href="#" class="tabs_menu">Pressure</a></li>
</ul>
类文件
@GeneratedValue(strategy = GenerationType.AUTO)
表
任何人都能告诉我为什么主键不是自动递增的吗?为什么不采取2,3,4 .....
答案 0 :(得分:1)
首先尝试设置 allocationSize :
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "exception_seq_generator")
@SequenceGenerator(name = "exception_seq_generator", sequenceName = "exception_seq", allocationSize=1)
@Column(name="exception_id")
public Integer exceptionId;
同时检查数据库中的当前序列,它现在可能有错误的值。
更简单的方法:
将PostgreSQL DB中的主键列定义为SERIAL:
CREATE TABLE xy (
id SERIAL PRIMARY KEY;
);
用以下内容注释列:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
SERIAL类型为您创建一个自动增量序列,并且您在JPA实体中没有那么多开销。