簡體   English   中英

Spring Hibernate JPA雙向OneToOne-刪除時不更新id

[英]Spring Hibernate JPA Bidirectional OneToOne - not updating id on delete

我在 OneToOne 關系中有 2 個實體:

一個用戶實體:

@Entity
public class User{

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;

    @OneToOne
    @JoinColumn()
    private StudentInfo studentInfo;
}

還有一個 StudentInfo 實體:

@Entity
public class StudentInfo {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;

    @OneToOne(cascade = CascadeType.REMOVE)
    @JoinColumn()
    private User user;
}

當我使用studentRepository.deleteById((long) 1)從數據庫中刪除第一個 StudentInfo 實例(id= studentRepository.deleteById((long) 1) ,實例確實會被刪除,與之關聯的用戶也會被刪除,但問題是數據庫中其他對象的 ID 不會更新。

刪除學生后,數據庫中的用戶如下所示:

刪除后的用戶

剩下的學生(只有一個):

刪除后的學生

我怎樣才能使 ID 在刪除時自動更新?

(2, 3, 4) -> (1, 2, 3)。

顯然,這是一個非常愚蠢的問題,因為雖然數據庫中的 id 對於表中的每一行都必須是唯一的,但它們不必是連續的。

因此,當數據庫表中的注冊表(一行)被刪除時,其他注冊表的 id 不會更新,因為不需要它。 這對所有sql數據庫都是如此,與Spring或JPA無關。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM