Например, задайте A → B как ManyToOne: несколько A могут ссылаться на один B, а внешний ключ хранится в таблице A. Это допустимый выбор, но не вывод из бизнес-условия.
Определение типа ассоциации между JPA‑сущностями A и B
Например, задайте 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 не обязательно для однонаправленной ассоциации.