[英]sharing foreign key Hibernate
我正在嘗試使用 JPA + Hibernate 對此 model 進行編碼
這是我的實體一級代碼
實體一級
@Entity
public class LevelOne {
@EmbeddedId
LevelOnePK levelOnePK;
@OneToOne(mappedBy = "levelOne")
private LevelTwo levelTwo;
private String valueCol;
//getters setters omitted
}
一級PK
@Embeddable
public class LevelOnePK implements Serializable {
private int idOne;
private int idTwo;
private int idThree;
//getters setters omitted
}
實體二級
@Entity
public class LevelTwo {
@Id
private int LondId;
@OneToOne
@JoinColumn(name = "lone_id_one")
@JoinColumn(name = "lone_id_two")
@JoinColumn(name = "lone_id_three")
private LevelOne levelOne;
@OneToOne(mappedBy = "levelTwo")
private LevelThree levelThree;
//getters setters omitted
}
三級實體
@Entity
public class LevelThree {
@Id
private int LondId;
@OneToOne
@JoinColumn(name="l_one", referencedColumnName="lone_id_one", insertable=false, updatable=false)
@JoinColumn(name="l_two", referencedColumnName="lone_id_two", insertable=false, updatable=false)
@JoinColumn(name="l_three", referencedColumnName="lone_id_three", insertable=false, updatable=false)
private LevelTwo levelTwo;
private String valueCol;
//getters setters omitted
}
這段代碼在做什么
此代碼成功地將一級實體的 PK 映射到二級實體作為外鍵。
在我遇到問題的地方,我無法將二級實體的 map 復合外鍵轉換為三級實體並出現此錯誤
Caused by: org.hibernate.AnnotationException: referencedColumnNames(lone_id_one, lone_id_two, lone_id_three) of com.example.testQuestions.LevelThree.LevelThree.levelTwo referencing com.example.testQuestions.LevelTwo.LevelTwo not mapped to a single property
我在哪里做錯了?
您的 model 似乎不正確。 LevelThree 中的 FK 是對 LevelOne 的引用,而不是 LevelTwo。
如果您希望 LevelThree 引用 LevelTwo,則 FK 將是單個 Long,因為 LevelTwo 的 PK 是單個 Long
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.