java - 包含 Set 的 @ManyToMany Map 的 JPA2 持久性

标签 java orm jpa jpa-2.0

我需要保留类型为 Map<Item, Set<Item>> 的成员,使用 JPA2 注释。 关系是多对多的,Item 对象是实体。

我是否应该创建一个单独的中介实体持有 Set<Item>还是可以直接映射?

如果缺少某些上下文,请告知。

最佳答案

Should I create a separate intermediary Entity holding Set<Item> or is a direct mapping possible?

JPA 不支持嵌套集合关系(List of List s,Map of Set s,等等)。这是关于 Map 的规范的相关部分:

2.7 Map Collections

Collections of elements and entity relationships can be represented as java.util.Map collections.

The map key and the map value independently can each be a basic type, an embeddable class, or an entity.

...

所以是的,使用持有 Set<Item> 的实体然后将您的关系映射为 Map<Item, MyHolder> .

引用资料

关于java - 包含 Set 的 @ManyToMany Map 的 JPA2 持久性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4125349/

相关文章:

node.js - 使用 "require"(Node ORM) 处理 Node.js 异步返回

java - 使 JPA 持久化上下文识别批量操作所做的更改

java - 调用init方法失败;嵌套异常是 org.hibernate.AnnotationException : No identifier specified for entity

java - 在什么情况下 JVM 会决定增加堆的大小?

java - string.format 自动填充我的 double 如何让它停止

java - 如何在 Spring 框架中使用 ORM...?

.net - .NET ORM 数据访问方法的优点 Entity Framework vs. NHibernate vs. Subsonic vs. ADO.NET Datasets

java - Gradle 包装器在 Windows 上的 Android 项目中获取错误的 Java 版本

java - 如何找出匹配器的状态?

jpa - 如何从 Camel jpa 组件获取结果集?