[英]How to create intermediate table between two tables in Hibernate/JPA?
表 1:計算機表
@Entity
@Table ("computer")
public class Computer{
private int id;
.
}
表 2:許可證表:
@Entity
@Table ("licenses")
public class Licnese{
private int id;
.
}
表 3:待創建。 這是中級,應該只有兩個字段
計算機 ID | 許可證編號
許可證 ID 可以鏈接到多個計算機 ID,多個計算機 ID 可以有多個許可證。
CompID | LicneseID
1|2
1|2
2|2
在我們的例子中,計算機和許可證數據已經存在。 我們運行一個作業來填充中間表,即選擇計算機 id,從休息服務下載 lincense id,在現有數據庫中查找許可證並在中間表中創建記錄。
應該怎么做?
獨立插入或
中間類{ private int compid private int liceid }
但是在這個主鍵中需要哪個客戶不想要。
我知道我們需要在計算機實體中使用 ElementCollection 但如何引用許可證 ID?
@ElementCollection(targetClass = Intermediate.class)
@CollectionTable(name = "Intermediate", joinColumns = @JoinColumn(name = "ID"))
@AttributeOverrides({
@AttributeOverride(name = "license ID",column = @Column(name = "License ID")),
private List<Intermediate> intermediate;
在這種情況下我們還需要合並計算機實體嗎?
根據您要使用 Hibernate 連接表方法的描述。 如何實現連接表方法你可以參考下面提到的鏈接: http : //fruzenshtein.com/hibernate-join-table-intermediary/
您可以簡單地定義一個@ManyToMany
關系,並且會自動創建 joininig 表。
@ManyToMany
@JoinTable(
name = "licence_computer",
joinColumns = @JoinColumn(name = "computer_id"),
inverseJoinColumns = @JoinColumn(name = "licence_id"))
private Set<Licnese> licences;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.