簡體   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