hibernate / jpa двойной двунаправленный OneToOne Отношение к одному объекту - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть следующая структура, которую я не могу понять, как вставить правильное отображение гибернации.

public class Company{
    @OneToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "details_x")
    private Details detailsX;

    @OneToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "details_y")
    private Details detailsY;
}

и

public class Details{
    ....
    private Type type; //Enum that could be x or y

    @OneToOne
    private Company company;
}

Компания располагает точными данными для xи один для тебя.Детали могут использоваться только одной компанией в x или y.С точки зрения базы данных, я думаю, что лучшая установка состоит в том, чтобы 2 столбца в tbl_company ссылались на Pk of Details.Но это приводит к тому, что отношение «Детали» к компании не работает.

Есть ли у кого-нибудь какие-либо предложения о том, как лучше всего сопоставить это?

Редактировать: добавлен тип в Сведения

1 Ответ

0 голосов
/ 20 ноября 2018

Вы должны определить mappedBy свойство, которое скажет, что я не владелец, как показано ниже.

public class Details{
    @OneToOne(mappedBy = "detailsX", cascade = CascadeType.ALL, 
                  fetch = FetchType.LAZY, optional = false)
    private Company company;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...