我的问题可能看起来很愚蠢。我对JPA很陌生,试图理解它的基本概念。我发现有一个@多对一的实体关系可以在那里使用。我的问题是为什么有人想要使用这个@ @一对多关系? 我的意思是,拥有后者足以了解关系并发送正确的查询?如果没有请解释,请致电 。也许我对这两个关系的想法是完全错误的。请提供一个场景作为例子,以便我更好地理解。 谢谢为什么在JPA实体关系中使用@多对一?
1
A
回答
1
OneToMany
用于映射集合。如果你想这个关系是双向的,那么你需要在另一端添加一个ManyToOne
映射。
随着Hibernate映射:人Ñ< ---> 1个地址
<class name="Person">
<id name="id" column="personId"/>
<many-to-one name="address" column="addressId"/>
</class>
<class name="Address">
<id name="id" column="addressId"/>
<set name="people">
<key column="addressId"/>
<one-to-many class="Person"/>
</set>
</class>
ManyToOne
也可以用于映射两个对象之间的依赖性。在这种情况下,如果您希望关系是双向的,那么您需要在另一端添加一个OneToOne
映射。
随着Hibernate映射:第1个人< ---> 1地址
<class name="Person">
<id name="id" column="personId"/>
<many-to-one name="address" column="addressId" unique="true"/>
</class>
<class name="Address">
<id name="id" column="addressId"/>
<one-to-one name="person" property-ref="address"/>
</class>
1
@ManyToOne
和@OneToMany
都是用于描述一个双向关系的双方的同一概念的一部分。
如果您希望关系是单向的 - 即其中一个实体不能遍历另一个实体,则可以使用其中一个注释。要决定哪一个,你将不得不决定哪个实体应该知道关系,哪些不应该。
但通常你想要一个双向关系 - 那么你使用两者。
相关问题
- 1. JPA实体关系多对多的自我关系
- 2. JPA - 不能访问非实体@MappedSuperclass在多对一关系
- 3. JPA一个一对多的关系问题(上一个实体关系)
- 4. 多对多实体关系:使用FOSUserBundle
- 5. 如何在多对多关系中使用hibernate和JPA删除孤立实体?
- 6. 如何设计JPA实体中的多对多关系?
- 7. JPA多对一关系
- 8. JPA取3个记录实体收集一对多关系
- 9. 为多对多实体关系
- 10. 多对多关系为单个实体
- 11. JPA多对一关系CascadeType行为
- 12. JPA:两个实体之间有多个多对多的关系?
- 13. JPA一对一的关系,实体可能不存在
- 14. 为什么需要关系表从实体到同一实体
- 15. JPA更新实体关系
- 16. JPA与Netbeans实体关系
- 17. App Engine JPA实体关系
- 18. 映射JPA实体关系
- 19. JPA CriteriaBuilder - 根据一对多关系中关联实体的数量排序
- 20. 我的JPA实体的OneToMany关系中缺少什么?
- 21. JPA关系与同一实体
- 22. JPA - 多对一关系不起作用
- 23. 实体框架中的一对多和一对多关系6
- 24. 多对多关系与一对多关系有什么区别?
- 25. Hibernate/JPA中的一对多关系
- 26. JPA中的一对多关系
- 27. 为什么不能在JPA和Hibernate中使用外键关系?
- 28. JPA许多一对多的关系,以同一实体与额外的列
- 29. 计数实体一对多的关系
- 30. 实体框架一对多关系