Questions tagged «one-to-many»

8
使用JPA @OneToMany关联时,@ JoinColumn和mappedBy有什么区别
之间有什么区别? @Entity public class Company { @OneToMany(cascade = CascadeType.ALL , fetch = FetchType.LAZY) @JoinColumn(name = "companyIdRef", referencedColumnName = "companyId") private List<Branch> branches; ... } 和 @Entity public class Company { @OneToMany(cascade = CascadeType.ALL , fetch = FetchType.LAZY, mappedBy = "companyIdRef") private List<Branch> branches; ... }
516 java  hibernate  jpa  orm  one-to-many 

15
Hibernate引发MultipleBagFetchException-无法同时获取多个包
Hibernate在创建SessionFactory时抛出此异常: org.hibernate.loader.MultipleBagFetchException:无法同时获取多个包 这是我的测试用例: Parent.java @Entity public Parent { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Long id; @OneToMany(mappedBy="parent", fetch=FetchType.EAGER) // @IndexColumn(name="INDEX_COL") if I had this the problem solve but I retrieve more children than I have, one child is null. private List<Child> children; } Child.java @Entity public Child { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Long id; …
471 java  hibernate  jpa  one-to-many  bag 

6
@ManyToOne JPA关联的CascadeType.ALL是什么意思
我认为我误解了@ManyToOne关系中级联的含义。 案子: public class User { @OneToMany(fetch = FetchType.EAGER) protected Set<Address> userAddresses; } public class Address { @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL) protected User addressOwner; } 的含义是cascade = CascadeType.ALL什么?例如,如果我从数据库中删除某个地址,添加的事实会如何cascade = CascadeType.ALL影响我的数据(User我猜是)?

6
双向JPA OneToMany / ManyToOne关联中的“关联的反面”是什么?
在@OneToManyJPA注释参考的示例部分中: 示例1-59 @OneToMany-具有泛型的客户类 @Entity public class Customer implements Serializable { ... @OneToMany(cascade=ALL, mappedBy="customer") public Set<Order> getOrders() { return orders; } ... } 示例1-60 @ManyToOne-具有泛型的Order类 @Entity public class Order implements Serializable { ... @ManyToOne @JoinColumn(name="CUST_ID", nullable=false) public Customer getCustomer() { return customer; } ... } 在我看来,Customer实体是协会的所有者。但是,在mappedBy同一文档中对属性的解释中写道: 如果关系是双向的,则将关联的反(非所有权)侧的maptedBy元素设置为拥有该关系的字段或属性的名称,如示例1-60所示。 但是,如果我没有记错的话,那么在示例中,mappedBy实际上是在关联的拥有方而不是非拥有方中指定的。 所以我的问题基本上是: 在双向(一对多/多对一)关联中,所有者是哪个实体?我们如何指定一方为所有者?我们如何指定“多方”作为所有者? “关联的反面”是什么意思?我们如何将一侧指定为逆?我们如何将“多面”指定为反面?

8
一对多,多对一和多对多的区别?
好的,所以这可能是一个琐碎的问题,但是我在可视化和理解差异以及何时使用它们方面遇到困难。对于诸如单向和双向映射之类的概念如何影响一对多/多对多关系,我也还不清楚。我现在正在使用Hibernate,因此任何与ORM相关的解释都将有所帮助。 举例来说,我有以下设置: public class Person{ private Long personId; private Set<Skill> skills; //Getters and setters } public class Skill{ private Long skillId; private String skillName; //Getters and setters } 那么在这种情况下,我将进行哪种映射?对于这个特定示例的答案肯定会受到赞赏,但我也确实希望获得何时使用一对多和多对多以及何时使用联接表与联接列以及单向与双向的概述。


3
何时在NHibernate / Hibernate OneToMany关系上使用inverse = false?
我一直试图了解Hibernate的inverse属性,但这似乎只是概念上困难的事情之一。 我得到的要点是,当您拥有一个使用一对多映射的Child对象集合的父实体(例如Parent)时,在映射上设置inverse = true会告诉Hibernate'另一面(子)有责任自行更新以维护其表中的外键引用。 在将Children添加到代码中的集合中,然后保存Parent(设置了cascade-all)时,这样做似乎有两个好处:您可以在数据库上保存不必要的命中(因为没有设置逆设置,Hibernate认为这样)有两个地方可以更新FK关系),并且根据官方文档: 如果关联的列声明为NOT NULL,则NHibernate在创建或更新关联时可能会导致约束冲突。为防止出现此问题,必须使用双向关联,将多个值端(集合或包)标记为inverse =“ true”。 到目前为止,这一切似乎都有意义。我不明白是这样的:你什么时候会不希望使用逆=真正在一个一对多的关系?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.