我开始使用JPA,并且我已经创建了两个这样的实体:
@Entity
public class Company{
...
@OneToMany(fetch=FetchType.LAZY, mappedBy = "company")
private List <Branch> branches;
}
@Entity
public class Branch{
...
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="company_id")
private Company company;
}
在我的数据库的分支表中,jpa创建了列&#34; company_id&#34;作为公司ID的外键(公司主键)。
我已经创建了一些包含分支机构的公司,并且它们已正确存储在数据库中。
现在我问自己应该如何添加一些分支,并将它们分配给已经存储在数据库中的一个公司...... 让我们说我知道公司的ID,我怎样才能创建一个拥有&#34; company_id&#34;具有给定公司ID值的列?在分支机构实体中,我没有一个company_id列,我可以在其中输入公司ID值...
我的问题清楚了吗?对不起,我搜索了一下,但我没有&#39;一无所获。
答案 0 :(得分:1)
首先获取具有给定公司ID的公司实例
Company company = em.get(Company.class, companyId); // or em.getReference(Company.class, companyId)
然后用该公司创建一个分支
Branch branch = new Branch(...);
branch.setCompany(company); // mandatory
company.getBranches().add(branch); // not mandatory, but advised to have a consistent graph
em.persist(branch);