2010-05-21 72 views
-1

我已經使用JPA創建了兩個表作爲個人和地址。我想在這些表格之間給出一對多的關係。如果我在地址表中提供以下內容JPA關係

@OneToMany(mappedBy="address",targetEntity=person.class,fetch=FetchType.EAGER) 

表示它不能正常工作。誰能幫我?

在此先感謝。

+0

需要多一點的信息。在你聲明地址的地方顯示你的Person類的一個片段,並在你聲明Person列表的地址類中顯示一個片段。 – 2010-05-21 14:23:06

+0

什麼是不正確的措辭?還請顯示您的實體。 – 2010-05-21 17:45:50

+0

用這麼小的描述來說幾乎是不可能的。 – brandizzi 2011-03-21 19:40:39

回答

0

不知道任何關於你的架構,我會猜測你需要什麼。

JPA足夠聰明,知道如何加入你的表,所以如果你在兩個表中都有id,你實際上不需要有「mappedBy」和「targetEntity」。

你只需要註釋你的班級如下:(假設你的關係是一個地址有很多人)。

內的地址類:

@OneToMany 
@JoinColumn(name="address_id") 
public List<Person> getPeople() 
{ 
    return people; 
} 

這將會把ADDRESS_ID在你的個人表代表及其相關地址的字段。由於您正在聲明Person JPA將知道映射到人員表的類型列表(只要Person類用@Entity正確註釋)。

+1

如果該關聯是雙向的,那麼您肯定需要'mappedBy'(或者這會導致兩個單向關聯)。 – 2010-05-21 17:44:25

+0

@Pascal Thivent根據OP提供的零信息做出了單向的假設。 如果是雙向的,您還必須在人員等級和所有其他要求中註明地址... – kgrad 2010-05-21 20:14:37

0

這是一個例子

@ElementCollection 
@CollectionTable(name = "NUMBER") 
private List<String> number; 
+0

您可以添加更多解釋嗎? – 2016-07-26 19:58:43