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