【发布时间】:2010-11-08 15:42:10
【问题描述】:
我需要使用 JPA2 注释来持久化 Map<Item, Set<Item>> 类型的成员。
关系是多对多的,Item 对象是实体。
我应该创建一个单独的中间实体持有Set<Item> 还是可以直接映射?
如果缺少某些上下文,请告知。
【问题讨论】:
我需要使用 JPA2 注释来持久化 Map<Item, Set<Item>> 类型的成员。
关系是多对多的,Item 对象是实体。
我应该创建一个单独的中间实体持有Set<Item> 还是可以直接映射?
如果缺少某些上下文,请告知。
【问题讨论】:
我应该创建一个单独的中间实体持有
Set<Item>还是可以直接映射?
JPA 不支持嵌套集合关系(Lists 的List、Sets 的Map 等)。这是规范中关于Map的相关部分:
2.7 地图集合
元素和实体的集合 关系可以表示为 java.util.Map 集合。
map key 和 map value 可以分别是 一个基本的 类型、可嵌入类或 实体。
...
所以是的,使用持有Set<Item> 的实体,然后将您的关系映射为Map<Item, MyHolder>。
【讨论】: