JPA: аннотация внешнего ключа
У меня есть два объекта базы данных: Forum
и Topic
.
Topic
имеет член данных protected long forumId
, что указывает, конечно, на форум Topic
.
Мой вопрос в том, какую аннотацию использовать для этого элемента данных?
Ответы
Ответ 1
Как форум имеет много тем, а тема принадлежит к одному и только форуму, вы, вероятно, захотите пойти с атрибутом типа Forum, аннотированным с помощью @ManyToOne
:
@ManyToOne
@JoinColumn(name = "forumId")
private Forum forum;
Подробнее:
ManyToOne и Отображение JPA
Ответ 2
Как и другие ответили -
Вы должны использовать аннотации ManyToOne и JoinColumn.
Готов иметь в виду, что, поскольку JPA относится к ORM - реляционному сопоставлению объектов,
Вы должны ссылаться на другой объект, как вы бы сделали "естественно" в Java - например, через объект, а не через его идентификатор (который является forumId) в вашем случае),
Это было одним из проектных соображений между отношениями в JPA и Hibernate (ранее в JPA).
Ответ 3
@ManyToOne
Как видно из аннотации - у вас много тем для форума