【问题标题】:JPA Bidirectional ManyToOne relation add a value in the foreign key columnJPA双向ManyToOne关系在外键列中添加一个值
【发布时间】:2014-08-14 05:35:10
【问题描述】:

我开始使用 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 创建了“company_id”列作为公司 ID 的外键(公司的主键)。

我创建了一些带有分支机构的公司,它们已正确存储在数据库中。

现在我问自己我应该如何添加一些分支,并将它们分配给一个已经存储在数据库中的公司...... 假设我知道公司的 ID,如何创建一个具有给定公司 ID 值的“company_id”列的分支?在 Branch 实体中,我没有 company_id 列,我可以在其中放置公司 id 值...

我的问题清楚了吗?抱歉,我搜索了一下,但没有找到任何相关信息。

【问题讨论】:

    标签: jakarta-ee jpa annotations


    【解决方案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);
    

    【讨论】:

      猜你喜欢
      • 2017-11-13
      • 2013-06-17
      • 2020-07-19
      • 2019-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多