Как представлять внешние ключи в объектах Java - PullRequest
0 голосов
/ 04 июля 2019

Если у меня есть класс сущности «Задача», у которого в базе данных есть столбец внешнего ключа «Заказы», ​​как это должно быть представлено в коде?Должен ли класс «Задача» иметь объект «Порядок» в качестве одного из своих частных полей и части своего конструктора?Или это вообще не обязательно, и я могу просто создать экземпляр объекта «Порядок», когда это необходимо?

1 Ответ

0 голосов
/ 04 июля 2019

Ну, это зависит от того, как вы делаете отображение таблиц в сущности.

Как правило, таблица "foo" с внешними ключами к таблице "bar" будет представлена ​​в виде классов Java Foo и Bar. Foo будет содержать ссылку на класс Bar.

Если вы используете фреймворк, такой как Hibernate, вы увидите что-то вроде этого:

@Entity
@Table(name="foo")
public class Foo {

    //...
    @ManyToOne
    @JoinColumn(name="bar_id", nullable=false)
    private Bar bar;

    public Foo(Bar b) {bar = b;}

    // getters and setters
}

Это означает, что в таблице foo есть столбец bar_id, который указывает на запись таблицы баров.

Сущность Foo содержит ссылку на сущность Bar.

Если вы используете hibernate или работаете с БД вручную (например, с шаблоном DAO), рекомендуется иметь конструктор, который получает "чужую" сущность.

Проверьте эти ссылки для получения дополнительной информации:

https://www.baeldung.com/java-dao-pattern

https://www.baeldung.com/hibernate-one-to-many

Надеюсь, это поможет, добро пожаловать в переполнение стека

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