繁体   English   中英

JPA save() 无法从现有表中获取最后一个 ID

[英]JPA save() can't get the last ID from an existing table

当我保存一个新实体时,它的主键 ID 按预期从 1 开始保存。 但是在我实现 JPA 之前,桌子上有几行。

实体.class:

    @Data
    @Entity
    @NoArgsConstructor
    @AllArgsConstructor
    @Table(schema = "db", name = "table")
    public class Entity {
        
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        @Column(name = "id", updatable = false, nullable = false)
        private Long id;
    }

示例:假设有 10 行。 .save()一个新实体,它使用id = 5保存,当然我得到一个例外。

我是否需要继续保存,直到生成的 ID 给出 + 10 数字。 这是正常的吗? @GeneratedValue不能从表中获取最后一个 id 并 +1 本身吗?

问题出在自动生成的 ID 上。 因为在实现 JPA 之前我确实在表上有行,所以自动增量从 1 开始。

通过修改自动递增序列修复:

SELECT SETVAL('table_id_seq', (SELECT MAX(id) + 1 FROM table));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM