2
respostas

JPA Hibernate - Querys

Olá!

Caso eu queira disparar uma query complexa, com subquerys e union's.... é possível criar uma query na mão (igualmente a criada direto no banco) e disparar contra o banco via jpql ?

2 respostas

Opa, só se a jpql tiver suporte... para union não tem. O melhor é fazer uma nativequery e mapear os resultados para seus objetos.

Alberto,

Deu certo, mas tenho um novo problema, o retorno que volta da query é um objeto criado na aplicação, logo a pergunta é como acessar um objeto que está dentro de uma lista de Object ?

        EntityManager em = new JPAUtil().getEntityMager();
        em.getTransaction().begin();

        Conta conta = new Conta();
        conta.setId(2);

        String teste = "select tipo, sum(valor) from movimentacao group by tipo";
        Query q = em.createNativeQuery(teste);

        List<Object> retorno = q.getResultList();

        for (Object o : retorno) {
            //como acessar um objeto que está dentro de uma lista de Object ? 
        }

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