Erro ao testar relacionamento com duas entidades
Conta conta = new Conta();
conta.setId(2L);
Categoria c = new Categoria("Viagem");
Categoria c2 = new Categoria("Negocios");
Movimentacao m = new Movimentacao();
m.setDescricao("Viagem a SP");
m.setTipoMovimentacao(TipoMovimentacao.SAIDA);
m.setData(LocalDateTime.now());
m.setValor(new BigDecimal(300.0));
m.setCategorias(Arrays.asList(c, c2));
m.setConta(conta);
Movimentacao m2 = new Movimentacao();
m2.setDescricao("Viagem a RJ");
m2.setTipoMovimentacao(TipoMovimentacao.SAIDA);
m2.setData(LocalDateTime.now());
m2.setValor(new BigDecimal(400.0));
m2.setCategorias(Arrays.asList(c, c2));
m2.setConta(conta);
EntityManagerFactory emf = Persistence.createEntityManagerFactory("alura");
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
em.persist(c);
em.persist(c2);
em.persist(m);
em.persist(m2);
em.getTransaction().commit();
em.close();
Segue erro abaixo:
WARN: SQL Error: 1062, SQLState: 23000
mar 26, 2020 12:16:06 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: Duplicate entry '1' for key 'UK_nf3ulaoqe53gtm70wfwnpl79x'
mar 26, 2020 12:16:06 PM org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl release
INFO: HHH000010: On release of batch it still contained JDBC statements
Exception in thread "main" javax.persistence.RollbackException: Error while committing the transaction
at org.hibernate.internal.ExceptionConverterImpl.convertCommitException(ExceptionConverterImpl.java:81)
at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:104)
at br.com.alura.jpa.testes.TestaRelacionamentoMovimentacaoCategoria.main(TestaRelacionamentoMovimentacaoCategoria.java:52)
Caused by: javax.persistence.PersistenceException: org.hibernate.exception.ConstraintViolationException: could not execute statement
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:154)
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:181)
at org.hibernate.internal.ExceptionConverterImpl.convertCommitException(ExceptionConverterImpl.java:65)
... 2 more