我想映射一个“集合”。集合是用户可以按照自己的意愿分组的一组项目。
@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”名称“bar”并放入“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 :(得分:2)
OneToMany是您想要将一个对象映射到多个对象
ManyToMany是您希望将多个对象映射到多个对象(就像您尝试在此处执行)
答案 1 :(得分:1)
你需要一个ManyToMany,但你把它映射为OneToMany。