Oi César,
Você deve estar utilizando 2 EntityManagers, e acredito que tenha um código parecido com:
Conta conta = new Conta();
//preenche os dados da conta
EntityManagerFactory emf = Persistence.createEntityManagerFactory("factory1");
EntityManager em = emf.createEntityManager();
EntityManagerFactory emf2 = Persistence.createEntityManagerFactory("factory2");
EntityManager em2 = emf.createEntityManager();
em.getTransaction().begin();
em.persist(conta);
em.getTransaction().commit();
em2.getTransaction().begin();
em2.persist(conta);
em2.getTransaction().commit();
em.close();
emf.close();
em2.close();
emf2.close();
O problema acontece pois quando você passa o objeto conta para o método persist
do primeiro EntityManager, esse objeto passa a ser gerenciado pela JPA e terá um ID gerado pelo banco de dados.
Quando você passa o mesmo
objeto para o segundo EntityManager, a JPA detecta que o objeto está sendo gerenciado e já possui um id, sendo que isso não deveria ocorrer, pois o método persist
deve ser utilizado apenas para objetos que não possuem id e não estão sendo gerenciados ainda.
O ideal nesse caso seria ter dois objetos distintos, onde cada EntityManager trabalhará com um deles, de maneira isolada um do outro.
Bons estudos!