JPA:非独特的“OneToMany”系列

时间:2013-02-14 16:03:28

标签: java hibernate jpa

我想映射一个“集合”。集合是用户可以按照自己的意愿分组的一组项目。

@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

我确定这种类型的映射必须是可能的吗?任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

OneToMany是您想要将一个对象映射到多个对象

ManyToMany是您希望将多个对象映射到多个对象(就像您尝试在此处执行)

答案 1 :(得分:1)

你需要一个ManyToMany,但你把它映射为OneToMany。