Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 执行JPA一对一时引用的属性未知_Java_Sql_Spring_Jpa_Hibernate Mapping - Fatal编程技术网

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

Java 执行JPA一对一时引用的属性未知,java,sql,spring,jpa,hibernate-mapping,Java,Sql,Spring,Jpa,Hibernate Mapping,我有这两个实体,我想在SQL数据库中映射@OneToOne,在执行JPA时使用表中的一对一恰好一记录,该记录对应于相关表中的恰好一条记录 下面是我如何创建@OneToOne关系的 @Entity @Table(name = "IMP_Radio") @NamedQuery(name = "ImpactRadio.findAll", query = "SELECT ia FROM ImpactRadio ia ") public class ImpactRadio implements Seria

我有这两个实体,我想在SQL数据库中映射@OneToOne,在执行JPA时使用表中的一对一恰好一记录,该记录对应于相关表中的恰好一条记录

下面是我如何创建@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

这是因为这里需要传递字段名:

@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。

我想这是因为mappedBy。它必须对应于目标类中的一个字段,并且您的字段是ImpactRadio,而不是ImpactRadio您已经编写了变量ImpactRadio大写的第一个字符,它必须是小写的。