我是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/