4

我想映射一个“集合”。集合是用户可以根据需要分组的一组项目。

@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

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

4

2 回答 2

2

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

ManyToMany 是当你想将许多对象映射到许多对象时(就像你在这里尝试做的那样)

于 2013-02-14T16:19:34.897 回答
1

您需要一个多对多,但您将它映射为一个单对多。

于 2013-02-14T16:06:43.280 回答