NullPointerException ao retornar EntityManager

3 respostas
D

Estou tentando obter dados através de JPA. Ao clicar em um botão Swing para carregar os dados em um jTextArea, obtenho o seguinte erro:

Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at alunosnotas.Principal.exibirNotas(Principal.java:296)

As classes:

Principal.java:

void exibirNotas()

{

List lista = notasDAO.listarTodasNotas();

…

NotasDAO.java:

public List listarTodasNotas()

{

EntityManager em = getEntityManager();

Query query = em.createQuery(“select n from Notas n order by n.aluno”);

List lista = query.getResultList();

em.close();
return lista;
}

O que pode estar errado?
Grato.

3 Respostas

mario.fts

a lista está vindo nula?

khaoz

1) Tenta utilizar as tags [code] quando postar codigo
2) Provavelmente aquel seu getEntityManager() esta retornando null.

elugo
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;



public class Consultar_Grupo extends JFrame{

	private JTextArea area = new JTextArea();
	private JScrollPane pane = new JScrollPane(area);
	private JButton limpar, fechar;
	public static EntityManagerFactory f = null;
	
	public Consultar_Grupo(EntityManagerFactory factory) {
		
		f = factory;
		
		setTitle("Consulta de Grupos");
		setLayout(null);
		
		limpar = new JButton("Limpar");
		fechar = new JButton("Fechar");
		
		pane.setBounds(50,50,500,300);
		limpar.setBounds(350,350,100,20);
		fechar.setBounds(450,350,100,20);
		
		add(fechar);
		add(limpar);
		add(pane);
		
		EntityManager em = f.createEntityManager();
		List<Grupo> listGrupo = null;
		
		List list = em.createQuery("FROM Grupo").getResultList();
		listGrupo = list;
		
		StringBuffer sb = new StringBuffer();
		
		if(listGrupo.isEmpty())
			sb.append("Nenhum Grupo Encontrado.");
		else
		{
			for (Grupo grupo: listGrupo) {
				sb.append("Código do Grupo: " + grupo.getCodigoGrupo()+ "\n");
				sb.append("Nome do Grupo: " + grupo.getNome() + "\n\n");
			}
		}
		area.setText(sb.toString());
		
		setSize(625,400);
		setVisible(true);
		setLocationRelativeTo(null);
	}
	
}

utiliza isso aki que vai t ajudar
é exatamente o que vc ta querendo fazer

Criado 14 de outubro de 2008
Ultima resposta 17 de out. de 2008
Respostas 3
Participantes 4