您需要使用派生身份。
ParentHobbyPK应该看起来像这样:
@Embeddablepublic class ParentHobbyPK { @Column(name="HOBBY_ID") private String hobbyID; private long parentID; // corresponds to the PK type of Parent}ParentHobby应该看起来像这样(重要的是
@MapsId注释):
@Entity@Table(name="PARENT_HOBBY")public class ParentHobby { @EmbeddedId private ParentHobbyPK id; @MapsId("parentID") // maps parentID attribute of the embedded ID @ManyToOne(optional = true) @JoinColumn(name = "PARENT_ID", referencedColumnName = "PARENT_ID", insertable = true, updatable = true) private Parent parent; ...}派生身份将在JPA 2.1规范的第2.4.1节中讨论。



