我不知道我該怎麼做,或者我會選擇什麼樣的關係。如何繼續JPA的第三級協會
我有3個表和1個關聯是:
客戶-----(0,N)----(命令)-----(0,N)---- - 服務
目標還附加了(命令)關聯,並且Target可以在命令(0,1)中爲空。 Command和Client之間的關係是雙向的。
對我來說,類圖將是這樣的:
但我不知道如何着手,如果我創建命令的實體與@ManyToOne,或其他方法。我真正的問題是關於與三張桌子的關聯。你可以幫幫我嗎 ?
我不知道我該怎麼做,或者我會選擇什麼樣的關係。如何繼續JPA的第三級協會
我有3個表和1個關聯是:
客戶-----(0,N)----(命令)-----(0,N)---- - 服務
目標還附加了(命令)關聯,並且Target可以在命令(0,1)中爲空。 Command和Client之間的關係是雙向的。
對我來說,類圖將是這樣的:
但我不知道如何着手,如果我創建命令的實體與@ManyToOne,或其他方法。我真正的問題是關於與三張桌子的關聯。你可以幫幫我嗎 ?
您將需要按照您的建議使用@ManyToOne。 EclipseLink對JPA(即使您使用的是不同的實現)有很大的文檔集
在命令你也會有這樣的:
@ManyToOne
@JoinColumn(name="CLIENT_ID", nullable=true)
private Client client;
而在客戶端,你也會有這樣的:
@OneToMany(mappedBy="client")
private Set<Command> commands;
This link給出了一個很好的例子。但是,OneToMany和ManyToOne註釋的api都給出了相當不錯的示例,說明如何使用它們。這通常是一個開始的好地方。您只需確定the relationship will own it的哪一面。
我認爲我應該使用另一種結構,例如與表關聯ManyToMany。但是這更好,謝謝你的鏈接! – toshiro92 2013-04-26 13:59:56
如果客戶端使用一個命令並且許多命令將與一個客戶端相關聯,則只能使用ManyToMany。你已經將它映射爲從客戶端到命令的OneToMany關係,這似乎是有道理的。 – 2013-04-26 14:07:44