Q
JPA:外键注释
18
A
回答
25
由于论坛有很多话题和主题属于独一无二的论坛,你可能想要去与@ManyToOne
注释的一个论坛类型属性:
@ManyToOne
@JoinColumn(name = "forumId")
private Forum forum;
查看更多:
ManyToOne and JPA mapping
+5
但在这种情况下的“问题”是,当您将主题序列化为XML或JSON(例如将其传递给客户端)时,整个Forum对象也将默认被序列化...如果if你上传一个主题到你的服务器,你需要传递整个Topic + Forum对象,你不能只使用论坛ID。在某些情况下,手动插入相关实体的外键似乎更容易。 – splinter123 2014-09-09 22:45:27
1
@ManyToOne 正如注释所暗示的 - 每个论坛有许多主题
5
正如其他人已经回答 -
您应该使用ManyToOne和JoinColumn注释。
请记住,由于JPA是关于ORM的 - 对象关系映射,
您应该引用另一个对象,就像您在Java中“自然地”完成的那样 - 即通过对象而不是通过其标识符(它是forumId)
这是JPA和Hibernate之间的关系(以前称为JPA)之间的设计考虑因素之一。
相关问题
- 1. @IdClass JPA注释
- 2. JPA注释
- 3. JPA ManyToMany注释
- 4. 外键休眠注释
- 5. FieldError注释过的外键
- 6. Katharsis和JPA注释
- 7. 注释JPA休眠
- 8. JPA注释和ConstraintViolationException
- 9. JPA 2.0中的JPA 2.0字段注释与方法注释
- 10. .net 4.5外键数据注释c#
- 11. Gradle/Hibernate/Maven注释外键创建
- 12. JPA注释和SQL表格
- 13. JPA/JTA/@Transactional Spring注释
- 14. JPA注释与继承
- 15. JPA注释和接口
- 16. JPA /休眠OneToMany&ManyToOne注释
- 17. JPA注释条件加入
- 18. JPA空不更新注释
- 19. 从JPA注释生成DDL
- 20. Android中的JPA注释
- 21. JPA外键列名
- 22. JPA多个外键
- 23. JPA外键为空
- 24. 一个Jpa查询注释返回结果作为键值对
- 25. JPA注释错误与OneToOne和复合主键
- 26. JPA +休眠外键为空
- 27. JPA外键连接同名
- 28. JPA @OneToMany:外键为空
- 29. JPA复合外键错误
- 30. JPA 2.0外键约束
你不需要在'Topic'中声明'forumId'。 – 2012-08-10 16:50:30
你为什么这么说?我认为这是必要的,因为我必须知道该主题属于哪个论坛 – socksocket 2012-08-10 16:53:03
@socksocket我认为这是因为您可以注释属性'Forum',用'@ JoinColumn'注释指定id,请参阅我的答案。 ;) – elias 2012-08-10 16:54:41