Имеют атрибуты от сопоставленного объекта «один к одному» - PullRequest
0 голосов
/ 23 апреля 2019

Как включить некоторые (или все) атрибуты атрибутов сопоставленного объекта «один-к-одному» в объект-владелец.

Я создал пример для рассмотрения проблемы:

@Data // Lombok's to contain all getter and setters
@Entity
@Table(name = "room")
public class Room {

    @Column
    int length;

    @Column
    int breadth;
}

@Data // Lombok's to contain all getter and setters
@Entity
@Table(name = "dance_room")
public class DanceRoom {

    @Column
    int numberOfPeople;

    @OneToOne
    Room room;
}

Теперь я хочу, чтобы сущность DanceRoom имела атрибут length также в этой сущности, но их не должно быть в dance_room таблице базы данных.

Прямое решение, которое я думаю для него:

@Data // Lombok's to contain all getter and setters
@Entity
@Table(name = "dance_room")
public class DanceRoom {

    @Column
    int numberOfPeople;

    @OneToOne
    Room room;

    public int getLength() {
        return room.length;
    }

}

Можно ли создать этот атрибут в DanceRoom сущности JPA и сохранить столбцы в room таблице базы данных?

Или есть какой-нибудь другой способ создать такое отображение?

1 Ответ

1 голос
/ 23 апреля 2019

Из имен сущностей и способа доступа к данным я бы предложил использовать Наследование .

Можно утверждать, что реляционные базы данных не имеют наследования. Правильно, но инструменты JPA и ORM в целом позволяют нам сопоставить эти отношения с базами данных.

Стратегии наследования JPA .

Просто сделайте Комната сущность родительской из DanceRoom сущность, следуя прежней ссылке.

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