我有这两个实体,我想在进行 JPA 一对一时使用将@OneToOne 映射到 SQL 数据库中(表中的一条记录恰好对应于相关表中的一条记录)在这里我如何创建@OneToOne 关系@Entity@Table(name = "IMP_Radio")@NamedQuery(name = "ImpactRadio.findAll", query = "SELECT ia FROM ImpactRadio ia ")public class ImpactRadio implements Serializable, IEntity<String> { /** * */ private static final long serialVersionUID = 1L; @Id @Column(name = "ID") private String id; @OneToOne(mappedBy = "impactRadio", fetch = FetchType.EAGER) @JoinColumn(name = "IA_ID") private ImpactRadioAmendment amendments; @OneToOne(mappedBy = "impactRadio", fetch = FetchType.EAGER) @JoinColumn(name = "IA_ID") private ImpactRadioExamination examinations;}@Entity@Table(name = "IMP_Radio_EXAMINATION")public class ImpactRadioExamination implements Serializable, IEntity<String> { /** * */ private static final long serialVersionUID = 1L; @Id @Column(name = "ID") private String id; @OneToOne(cascade = {CascadeType.PERSIST, CascadeType.REMOVE}) @JoinColumn(name = "IA_ID") private ImpactRadio ImpactRadio;}But I have an exception when I try to run a Junit testCaused by: org.hibernate.AnnotationException: Unknown mappedBy in: com.tdk.persistence.fire.model.ImpactRadio.examinations, referenced property unknown: com.tdk.persistence.fire.model.ImpactRadioExamination.impactRadio
1 回答

千万里不及你
TA贡献1784条经验 获得超9个赞
这是因为在这里您需要传递字段名称:
@OneToOne(mappedBy = "impactRadio", fetch = FetchType.EAGER)
@JoinColumn(name = "IA_ID")
private ImpactRadioAmendment amendments;
@OneToOne(mappedBy = "impactRadio", fetch = FetchType.EAGER)
@JoinColumn(name = "IA_ID")
private ImpactRadioExamination examinations;
而真正的字段是大写的:
@OneToOne(cascade = {CascadeType.PERSIST, CascadeType.REMOVE})
@JoinColumn(name = "IA_ID")
private ImpactRadio ImpactRadio;
重命名ImpactRadio为impactRadio.
添加回答
举报
0/150
提交
取消