NullPointerException no JPA

3 respostas
Marck

Olá,

Estou com um problema de NullPointerException no seguinte código:

public List<Regiao> listarRegiao(){
        
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("OrquestraPU");
        EntityManager em = emf.createEntityManager();
        
        Query q =  em.createNamedQuery("Regiao.findByIdregiao");
        
        List <Integer> in = em.createQuery("select t.idregiao from Regiao t").getResultList();
        
        
        List<Regiao> list = null;
        
        for( int i = 0; i < in.size(); i++ ){                
            
            List aux=null;
            aux = q.setParameter("idregiao", in.get(i)).getResultList();
            
            list.add((Regiao) aux.get(0) ); //Aqui gera a Exception
            
        
        }
    return list;   
    }

Não entendo pq está gerando Exception, pois se eu fizer:

return (List<Regiao>) q.setParameter("idregiao", 0).getResultList();

…é retornado o primeiro elemento. :?

Obrigado a todos! :roll:

3 Respostas

Marck

Caramba, fiquei tanto tempo e só percebi agora.
Eu mesm causava a Exception:

List<Regiao> list = null;

Tem que ser:

List<Regiao> list = new ArrayList<Regiao>();

foi mal.

Foxlol

Tua variável list está nula, pois antes de usar ela vc faz:

List<Regiao> list = null;

Não atribui a ela nenhuma instância de objeto.

Marck

Blza!

Agora ficou assim:

public List<Regiao> listarRegiao(){
        
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("OrquestraPU");
        EntityManager em = emf.createEntityManager();
        List<Regiao> list = new ArrayList<Regiao>();
        
        Query q =  em.createNamedQuery("Regiao.findByIdregiao");
        
        List <Integer> in = em.createQuery("select t.idregiao from Regiao t").getResultList();
                
          for( Iterator <Integer> it = in.iterator(); it.hasNext(); ){                
              
             list.add( (Regiao) q.setParameter("idregiao", it.next()).getResultList().get(0) );
                   
        }
       
        return list;   
    }

Vou dar uma melhorada. Acho que tem muito codigo ai.
Valeu!

Criado 4 de abril de 2008
Ultima resposta 4 de abr. de 2008
Respostas 3
Participantes 2