【发布时间】:2015-10-14 12:18:52
【问题描述】:
我的 Parent 类有两个子类:Child 和 ParentHobby。 Child 类有一个单一的 PK 并且其上的 @OneToMany 映射有效。问题是我不知道如何将它映射到具有复合 PK 的 ParentHobby 类上。
家长:
//this works
@OneToMany(cascade = CascadeType.ALL, mappedBy = "parent", fetch = FetchType.EAGER)
private List<Child> childList;
//this DOES NOT work
@OneToMany(cascade = CascadeType.ALL, mappedBy = "parent", fetch = FetchType.EAGER)
private List<ParentHobby> hobbyList;
孩子:
@Entity
@Table(name="CHILD")
public class Child {
@Id
@SequenceGenerator(name="CHILD_SEQ", sequenceName="CHILD_DB_SEQ", allocationSize = 1)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="CHILD_SEQ")
@Column(name="CHILD_ID")
private long childID;
@JoinColumn(name = "PARENT_ID", referencedColumnName = "PARENT_ID", insertable = true, updatable = true)
@ManyToOne(optional = true)
private Parent parent;
家长爱好:
@实体 @Table(name="PARENT_HOBBY") 公共类 ParentHobby {
@EmbeddedId
private ParentHobbyPK id;
ParentHobbyPK:
@Embeddable
public class ParentHobbyPK {
@JoinColumn(name = "PARENT_ID", referencedColumnName = "PARENT_ID", insertable = true, updatable = true)
@ManyToOne(optional = true)
private Parent parent;
@Column(name="HOBBY_ID")
private String hobbyID;
我在编译时得到的异常是:
mappedBy reference an unknown target entity property: ParentHobby.parent in Parent.hobbyList
当子实体具有复合主键时,如何在父实体中定义 @OneToMany 关系?
类似:
@OneToMany relationship with Composite key
Hibernate Entity mapping when Foreign key is part of the composite primary key?
【问题讨论】:
标签: hibernate jpa composite-key referential-integrity