java - Map<String, List> 或 List<List> 的 Hibernate 注释

标签 java hibernate jpa

我是hibernate新手,我学会了如何注释Map<String, String>Map<String, CustomObject>List<CustomObject>等等 但是我找不到注释 Map<String, List> 的方法或 List<List>

例如以下是我如何注释 Map<CustomKey, CustomObject>它正在运行。

@ElementCollection(targetClass=PhoneNumber.class, fetch=FetchType.EAGER)
@MapKeyClass(NumberType.class)
@MapKeyColumn(name="type")
@CollectionTable(name="phones", joinColumns=@JoinColumn(referencedColumnName="id"))
@Getter
@Setter
private Map<NumberType, PhoneNumber> phones;

@Embeddable
public class NumberType {
}

@Embeddable
public class PhoneNumber {
}

现在,我的要求是注释像 Map<CustomKey, List<CustomObject>> 这样的属性和 Map<CustomKey, Map<AnotherCustomKey, CustomObject>>

所以我的问题是:是否可以通过 Hibernate/JPA 来实现?或者你在 hibernate 中以不同的方式实现这种目的?

非常感谢您的帮助。

最佳答案

一般而言, Map 表示多对多关系,因此由 @ManyToMany 映射。注解。 列表是一对多或多对一的关系,因此应该是 @OneToMany@ManyToOne注释相应。 Hibernate 处理实体及其之间的关系。

所以 Map值类型 ( Map/List ) 在示例中 应该由它自己的实体表示。例如。 List<CustomObject>将是 CustomObjectGroup .

关于java - Map<String, List> 或 List<List> 的 Hibernate 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23905902/

相关文章:

java - 实体位于多个 JAR 文件中时的 JPA/Hibernate 映射错误

java - 提交期间的延迟(使用 JPA/JTA)

java - 寻求有关使用 DAWG 实现文字游戏的建议

java - org.apache.commons.fileupload.disk.DiskFileItem 没有正确创建?

java - hibernate validator 4+。获取与类关联的所有约束

java - 如何使用 hibernate JPA 注释连接两列

c# - 在 Java 中从字节获取 int,首先在 C# 中编码

java - hibernate 环境 : modified field flag name

java - c3p0属性应该在哪里指定?

java.lang.StackOverflowError ManyToMany : MapStruct - Spring Boot - Hibernate