Сохраняемый объект 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;

...
}

Теперь я добавляю вновь созданного сотрудника в отдельную компанию. Я использую примерно такой код:

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 или просто использовать его идентификатор и сохранить объект сотрудника?
Может ли спящий режим каким-то образом дублировать объект моей компании или вызвать исключение, в котором говорится, что компания с таким же идентификатором уже существует в базе данных?

6
задан Sean Patrick Floyd 27 November 2010 в 09:43
поделиться