указанное свойство неизвестно при выполнении JPA One-to-One - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть эти 2 сущности, где я хочу отобразить @OneToOne в базе данных SQL, используя при выполнении JPA One-to-One (ровно одну запись в таблице, которая соответствует ровно одной записи в связанной таблице)

Вот как я могу создать отношение @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

1 Ответ

0 голосов
/ 21 февраля 2019

Это потому, что здесь вам нужно передать имя поля:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...