小编tal*_*tal的帖子

JPA在ManyToOne关系中持久化对象

@OneToMany在我的数据库中有一个公司/员工关系定义为:

@Entity
public class Employee {
   @Id @GeneratedValue(strategy=GenerationType.IDENTITY)
   private long id;
   @ManyToOne @JoinColumn(name="companyid")
   Company company;
   ....
}

@Entity
public class Company {
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
private long id;

...
}
Run Code Online (Sandbox Code Playgroud)

现在我将一个新创建的员工添加到一个独立的公司.我使用的代码是这样的:

Company company = em1.find(Company.class, 555L);
em1.close();

EntityTransaction et = em2.getTransaction();
et.begin();
Employee employee = new Employee();
employee.company = company;
em2.persist(employee);
et.close();
Run Code Online (Sandbox Code Playgroud)

这项工作可以吗?
hibernate会将公司合并到第二个EntityManager中,还是仅使用其id并持久保存员工对象?
可能会以某种方式复制我的公司对象或者抛出异常,说明数据库中已存在具有相同ID的公司?

java entity-relationship hibernate jpa

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

entity-relationship ×1

hibernate ×1

java ×1

jpa ×1