进行 JPA 一对一时引用的属性未知

我有这两个实体,我想在进行 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 test

Caused by: org.hibernate.AnnotationException: 

Unknown mappedBy in: com.tdk.persistence.fire.model.ImpactRadio.examinations, 

referenced property unknown: com.tdk.persistence.fire.model.ImpactRadioExamination.impactRadio



Smart猫小萌
浏览 142回答 1
1回答

千万里不及你

这是因为在这里您需要传递字段名称:@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.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java