bro*_*chb 10 java hibernate jpa
我无法为某些实体设置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>();
}
Run Code Online (Sandbox Code Playgroud)
然后,我有一个带有复合键的子实体,以及该表主键的外键,如下所示:
@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;
}
Run Code Online (Sandbox Code Playgroud)
我知道子实体是不正确的,但我不确定如何将其设置为具有复合PK.我知道我需要设置一个PK类,但是当一个字段是父类的外键时,我不知道该怎么做.一旦设置了,父母将如何引用子实体?
任何帮助表示赞赏.
Dan*_*que 13
这受JPA 2规范第2.4.1节"与派生身份相对应的主键"的约束.本节包含两个直接适用于您的问题的示例.
如规范中所述,在这种情况下,有两种方法可以表示子实体的密钥:
@IdClass@EmbeddedId这是一个粗略的草图EmbeddedId.我选择EmbeddedId随意,但之间的选择IdClass和EmbeddedId是显著.您可以选择不同的方式
// Child entity's composite primary key
@Embeddable
public class InstanceNotifyEntityId implements Serializable {
Long eaihId;
Long userId;
}
// Child entity
@Entity
@Table(name="EIF_INST_NOTIFIED")
public class InstanceNotifyEntity implements Serializable {
@AttributeOverrides({
@AttributeOverride(name="userId", column = @Column(name="USER_ID"))
@AttributeOverride(name="eaihId", column = @Column(name="EAIH_ID"))
})
@EmbeddedId
InstanceNotifyEntityId id;
@MapsId("eaihId")
@ManyToOne
InstanceEntity instance;
// ...
}
Run Code Online (Sandbox Code Playgroud)
父实体需要一个更改:userDetails属性mappedBy应为"id.eaihId".我认为就是这样,但我之前没有使用过这样的实体.可能错过了一些东西......如果你看到错误,请发帖.
| 归档时间: |
|
| 查看次数: |
18542 次 |
| 最近记录: |