JPA Bidirectional ManyToOne关系在外键列中添加值

时间:2014-08-13 21:26:01

标签: java-ee jpa annotations

我开始使用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;一无所获。

1 个答案:

答案 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);
相关问题