У меня есть отношение компании / сотрудника @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;
...
}
Теперь я добавляю недавно созданного сотрудника в отдельную компанию.Код, который я использую, выглядит примерно так:
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();
Будет ли это работать нормально?
Собирается ли Hibernate объединить компанию во 2-й EntityManager или просто использовать ее идентификатор и сохранить объект сотрудника?
Может ли hibernate каким-либо образом дублировать объект моей компании или выдать исключение, говорящее, что компания с таким же идентификатором уже существует в БД?