Определение типа ассоциации между JPA‑сущностями A и B

Например, задайте A → B как ManyToOne: несколько A могут ссылаться на один B, а внешний ключ хранится в таблице A. Это допустимый выбор, но не вывод из бизнес-условия.

Короткий ответ

Что ответить на собеседовании

Например, задайте A → B как ManyToOne: несколько A могут ссылаться на один B, а внешний ключ хранится в таблице A. Это допустимый выбор, но не вывод из бизнес-условия.

Подробный разбор

Ответ с пояснениями

Условие

Создайте одну из допустимых связей между двумя JPA‑классами A и B (например, @OneToOne, @ManyToOne и т.п.).

@Entity
class A {
    @Id
    Long identifier;

    // связь с B?
}

@Entity
class B {
    @Id
    Long identifier;
}

Ответ

Например, задайте A → B как ManyToOne: несколько A могут ссылаться на один B, а внешний ключ хранится в таблице A. Это допустимый выбор, но не вывод из бизнес-условия.

В класс A добавляется:

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "b_id")
private B b;

По умолчанию связь допускает null; для обязательной связи задайте optional=false и nullable=false вместе с ограничением БД. Cascade удаление B при удалении A обычно не нужно, поскольку B может быть общим. Если связь должна быть one-to-one, необходима другая аннотация и уникальность внешнего ключа. Обратное поле в B не обязательно для однонаправленной ассоциации.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее