2013-02-14 31 views
2

我想映射一個「集合」。集合是一組用戶可以隨意組合的項目。JPA:非獨特的「OneToMany」系列

@Entity 
class Item { 
    Long id; 
    String name 
} 

@Entity 
class MyCollection { 
    Long id; 
    String name; 

    @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL) 
    Set<Item> items; 
} 

用戶應該能夠把Item名稱爲「foo」到了`MyCollection的」名稱‘欄’,並進入‘MyCollection的’名‘BAR2’

是JPA/Hibernate是爲了創建連接表我,MyCollection_Item已經有4個索引,PK(MyCollection_id, Item_id),唯一索引(Item_id)和2個外鍵。

我不想讓它在Item_id上創建唯一索引。這使我不必:

MyCollection_id, Item_Id

1, 1

1, 2

2, 1

我相信這種類型的映射必須是可能的嗎?任何幫助將不勝感激。

+0

嘗試使用manyToMany – BobTheBuilder 2013-02-14 16:06:08

回答

2

一對多是當你想映射一個對象許多對象

多對多是當你要映射許多對象許多對象(如試圖在這裏做)

1

您需要一個ManyToMany,但將其映射爲OneToMany。