Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvida sobre o objeto Conta

Bom dia.

Fiquei com uma dúvida, no ponto que a conta é criada. A mesma foi associada com as movimentações, mas não deveríamos chamar o persist para ela também, como foi feito em movimentacao e categoria? Ou apenas de dar um setId() na conta o hibernate já faz um insert no banco?

Obrigado


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(movimentacao1);
        em.persist(movimentacao2);

        em.getTransaction().commit();    
        em.close();    

    }
}
3 respostas
solução!

Oi Antonio tudo bem?

Voce provavelmente ja tem uma conta cadastrada no seu Banco com o Id 2, então voce esta apenas associando a movimentação com uma conta, por isso que não precisa fazer um persist.

Esperto ter ajudo :)

Caio bom dia, tudo bem?

No ponto em que você diz "ele também salva as categorias ", mas não seria contas?

Desde já agradeço sua ajuda

Oi Antonio, tinha me equivocado com sua pergunta, mas ja editei a resposta :)