JPA:外键注释

时间:2012-08-10 16:46:22

标签: java database-design jpa orm annotations

我有两个数据库实体:ForumTopic

Topicprotected long forumId个数据成员,当然表示Topic的论坛。

我的问题是这个数据成员使用的注释是什么?

3 个答案:

答案 0 :(得分:33)

由于论坛有很多主题,并且某个主题属于唯一的论坛,因此您可能希望使用带有@ManyToOne注释的论坛类型属性:

@ManyToOne
@JoinColumn(name = "forumId")
private Forum forum;

查看更多内容:

ManyToOneJPA mapping

答案 1 :(得分:5)

其他人已经回答了 -
您应该使用ManyToOneJoinColumn注释。
请记住,因为JPA是关于ORM - 对象关系映射,
您应该像在Java中“自然地”那样引用另一个对象 - 即通过对象而不是通过其标识符(在您的情况下是forumId),  这是JPA和Hibernate(之前对JPA)关系之间的设计考虑之一。

答案 2 :(得分:1)

@ManyToOne 正如注释所暗示的那样 - 每个论坛都有很多主题