我有两个数据库实体:Forum
和 Topic
。
Topic
有一个 protected long forumId
数据成员,它当然表示了 Topic
所属的论坛。
我的问题是应该使用什么注解来注释这个数据成员?
我有两个数据库实体:Forum
和 Topic
。
Topic
有一个 protected long forumId
数据成员,它当然表示了 Topic
所属的论坛。
我的问题是应该使用什么注解来注释这个数据成员?
由于论坛有许多主题,而一个主题属于一个且仅属于一个论坛,因此您可能需要使用带有@ManyToOne
注释的Forum类型属性:
@ManyToOne
@JoinColumn(name = "forumId")
private Forum forum;
更多信息:
getForum().getId()
,则只会获取到id(无需进行连接)。请参见:https://dev59.com/eI7ea4cB1Zd3GeqPBng_#32223785 - Elias Dorneles就像其他人已经回答的那样 -
你应该使用ManyToOne
和JoinColumn
注释。
请注意,由于JPA是关于ORM-对象关系映射的,
你应该像在Java中自然地引用另一个对象一样 - 即通过一个对象而不是通过其标识符(在你的情况下是forumId),
这是JPA和Hibernate之间关系设计考虑之一(此前为JPA)。
@ManyToOne
正如注释所示 - 每个论坛有多个主题
@JoinColumn
注释来注释一个属性“Forum”,并指定其id,详见我的回答。 ;) - Elias Dorneles