【发布时间】:2011-03-20 10:05:38
【问题描述】:
我在为某些实体设置 jpa 映射时遇到问题。我有一个父实体定义如下。
@Entity
@Table(name="EIF_INSTANCE_HDR")
public class InstanceEntity implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(generator="eif_inst_gen")
@SequenceGenerator(name="eif_inst_gen",sequenceName="EIF_INSTANCE_SEQ")
@Column(name = "EAIH_ID")
private Long eaihid;
@Column(name = "EAD_ID")
private Long eadid;
@OneToMany(targetEntity=InstanceNotifyEntity.class, mappedBy="instance",fetch=FetchType.EAGER, cascade = CascadeType.ALL)
private List<InstanceNotifyEntity> userDetails = new ArrayList<InstanceNotifyEntity>();
}
然后我有一个带有复合键的子实体,以及该表主键的外键,如下所示:
@Entity
@Table(name="EIF_INST_NOTIFIED")
public class InstanceNotifyEntity implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@ManyToOne
@JoinColumn(name="EAIH_ID", referencedColumnName="EAIH_ID")
private InstanceEntity instance;
@Id
@Column(name="USER_ID")
private Long userId;
@Column(name="COMMENT_TXT")
private String commentText;
}
我知道子实体不正确,但我不确定如何设置它以获得复合 PK。我知道我需要设置一个 PK 类,但是当一个字段是父类的外键时,我不确定该怎么做。一旦设置完成,父级将如何引用子实体?
感谢任何帮助。
【问题讨论】: