我有一個名爲person的類,它映射到一個person表。一個人擁有一系列人物對象作爲屬性,代表他們的子女,以及代表他們父母的一系列人物對象。映射屬性類型相同的jpa關係
他們是一個鏈接表,通過他們的ID保存子/父母關係。以下是我有:
@ManyToMany(mappedBy = "id")
@JoinTable(name = "PARENT_TO_CHILD_LINK_TABLE", joinColumns = @JoinColumn(name = "CHILD_ID"), inverseJoinColumns = @JoinColumn(name = "PARENT_ID"))
private List<Person> parents;
@ManyToMany(mappedBy = "id")
@JoinTable(name = "PARENT_TO_CHILD_LINK_TABLE", joinColumns = @JoinColumn(name = "PARENT_ID"), inverseJoinColumns = @JoinColumn(name = "CHILD_ID"))
private ArrayList<Person> children;
我得到一個錯誤,指出註釋標誌着作爲映射不應有@JoinColumn
或@JoinTable
註解。
這種關係看起來像一個很多的東西嗎?
對於初學者,你想'@ ManyToMany'。你不能在兩個方向上都有@ @ OneToMany的關係! –
所以當我把這個關係做成多對多的時候,這個映射就會消失嗎? – user1154644
你需要它的一面。這只是一次,在[javadoc](http://docs.oracle.com/javaee/6/api/javax/persistence/ManyToMany.html)中非常清楚地闡述:「每個多對多關聯都有雙方,擁有方和非擁有方或反方,連接表在自己方面指定,如果關聯是雙向的,則任一方可以被指定爲擁有方,如果關係是雙向的,非擁有方必須使用ManyToMany批註的mappedBy元素來指定擁有方的關係字段或屬性。「 –