Map <string,list =“”>或List <list> </list> </string,>的Hibernate注释

时间:2014-05-28 08:01:00

标签: java hibernate jpa

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

E.g。以下是我如何注释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>>

等属性

所以我的问题: Hibernate / JPA可以做到吗?或者你在休眠方面有不同的目的吗?

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

一般来说, Map表示多对多关系,因此可以通过@ManyToMany注释进行映射。 List是一对多或多对一关系,因此相应地应该是@OneToMany@ManyToOne注释。 Hibernate处理它们之间的实体和关系。

因此,示例中的Map值类型(Map/List应由其自己的实体表示。例如。 List<CustomObject>将是CustomObjectGroup