我有這兩個實體,我想在進行 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
提交
取消