0
TLDR;在休眠狀態下切換外鍵不起作用
我使用的是spring boot和jpa。
我想切換對象的外鍵,在這種情況下只是切換車輛的類別。
但是,當我嘗試這樣做,休眠其解釋爲,如果我試圖改變類對象的主鍵,而不是僅僅開關外鍵,我得到這個錯誤
org.hibernate.HibernateException:identifier of an instance of abc.package.mode.Category was altered from 1 to 2
我有一個實體類別,我只用於分類車輛實體對象。
@Entity
public class Category {
@Id
private Long id;
private String name;
}
這是需要分類的車輛類。
@Entity
public class Vehicle {
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator="dish_seq")
private Long id;
private String name;
private Integer price;
@ManyToOne(fetch = FetchType.EAGER, cascade=CascadeType.DETACH)
private Category category;
}
比方說,有3類,
- '轎車'
- '轉換'
- '兩廂'
如果我有一輛車對象, Nissan- PT76,$ 30000,類別:[id:1,name:Sedan]
當我嘗試改變類別手動[ID:2,名稱:換股]和堅持它,我得到
org.hibernate.HibernateException:identifier of an instance of abc.package.mode.Category was altered from 1 to 2
我不能從一個現有的對象切換到另一個。我試圖在互聯網上查看這些信息,但是我無法找到正確的關鍵字來搜索hibernate中的這種關係,還是根本不允許這種關係?
不,這還不讓我改變車輛的類別 – user2049132