Не em.persist (obj), просто em.merge (obj). Объединение работает как с прикрепленными, так и с отсоединенными объектами.
Если вы начинаете с отсоединенного объекта, я бы слил объект с соответствующими EntityManager. Если вы пытаетесь сохранить идентичный ключ на всех объектах, я бы вытащил ключ из первого объединенного объекта и использовал его в будущем.
То, что вы, вероятно, (я не знаю) не хотите делать, это попытаться объединить объект, которым управляет один EM, с другим EM. Вы можете проверить это, чтобы увидеть, работает ли оно, я просто не знаю, что произойдет, если вы попробуете.
Зв
YourEntity unattachedEntity = ... // your original entity object.
YourEntity managedEntity = em1.merge(unattachedEntity);
// managedEntity now has the primary key assigned by the DB
unattacheEntity.setPrimaryKey(managedEntity.getPrimaryKey());
em2.merge(unattachedEntity);
em3.merge(unattachedEntity);
Нечто подобное должно работать нормально.