JPA 一对多(多对一)映射步骤
引用
下面总结一下,在标注一对多和多对一的实体关联时,应遵循的几个步骤:
(1)确定实体与实体间的关系。
如果是一对多的关系,则要使用@OneToMany注释;如果是多对一,则要使用@ManyToOne。例如,CustomerEO和AddressEO两个实体是一对多的关系,相反AddressEO和CustomerEO两个实体是多对一的关系。
(2)考虑表结构的设计。
? 若使用外键关联,考虑默认的实体关系映射或者配合@JoinColumn注释使用。
? 若使用表关联,则需要使用@JoinTable注释使用。
(3)考虑实体关系的方向性。
若为双向关联,则在保存实体关系的实体中,要配合使用@JoinColumn注释;在没有保存实体关系的实体中,要使用mappedBy属性明确所关联的实体。例如,CustomerEO实体和AddressEO实体的关系保存在表“address”中,所以在AddressEO实体中使用@JoinColumn,在CustomerEO中设置mappedBy属性。
若为单向关联,则在保存实体关系的实体中要配合使用@JoinColumn注释;没有保存实体关系的实体中,也要使用@JoinColumn注释。