Eu criei o código da aula, mas quando executo o TesteMovimentacoesComCategoria ele cria as tabelas, cria a tabela relacional mas não adiciona os dados.
Não sei o porque, segue o meu código:
package br.com.caelum.financas.teste;
import java.math.BigDecimal; import java.util.Arrays; import java.util.Calendar;
import javax.persistence.EntityManager;
import br.com.caelum.financas.modelo.Categoria; import br.com.caelum.financas.modelo.Conta; import br.com.caelum.financas.modelo.Movimentacao; import br.com.caelum.financas.modelo.TipoMovimentacao; import br.com.caelum.financas.util.JPAUtil;
public class TesteMovimentacoesComCategoria {
public static void main(String[] args) {
Categoria categoria1 = new Categoria("Viagem");
Categoria categoria2 = new Categoria("Negócios");
Conta conta = new Conta();
conta.setId(2);
Movimentacao movimentacao1 = new Movimentacao();
movimentacao1.setData(Calendar.getInstance()); // hoje
movimentacao1.setDescricao("Viagem à SP");
movimentacao1.setTipo(TipoMovimentacao.SAIDA);
movimentacao1.setValor(new BigDecimal("100.0"));
movimentacao1.setCategorias(Arrays.asList(categoria1, categoria2));
movimentacao1.setConta(conta);
Movimentacao movimentacao2 = new Movimentacao();
movimentacao2.setData(Calendar.getInstance()); // hoje
movimentacao2.setDescricao("Viagem ao RJ");
movimentacao2.setTipo(TipoMovimentacao.SAIDA);
movimentacao2.setValor(new BigDecimal("300.0"));
movimentacao2.setCategorias(Arrays.asList(categoria1, categoria2));
movimentacao2.setConta(conta);
EntityManager em = new JPAUtil().getEntityManager();
em.getTransaction().begin();
em.persist(categoria1); // Agora a 'categoria1' é Managed
em.persist(categoria2); //
em.persist(movimentacao1);
em.persist(movimentacao2);
em.getTransaction().commit();
em.close();
}
}
E oque aparece no console são as mensagens de execução da JPA e isso aqui
Hibernate:
alter table Cliente
add constraint FKajhxkga86ursgptf0lm09qpj0
foreign key (conta_id)
references Conta (id)
não da nenhuma exception