Java.lang.NullPointerException no Dao com Hibernate

6 respostas
J

Caros,

Estou tentando fazer um DAO funcionar, mas está ocorrendo o erro abaixo. Eu sei que este erro é porque o objeto não existe. Mas eu instanciei o objeto conforme abaixo:

public LocalidadeController() {
		// mostrar erro por não inicializar
		this.localidade = new Localidade();
	}

O método salvar está conforme abaixo:

public String salvar() 
	{
		try 
		{
		// se não  um id,
			// estamos com um novo registro
			
			if (localidade.getLoc_Id() == null) 
			{

				localidadeDao.salvar(localidade);
				System.out.println("passou 3");
				FacesUtils.mensInfo("Cadastrado com sucesso");

			} else {
				// altera
				// atualiza o localidade
				localidadeDao.atualizar(localidade);
				FacesUtils.mensInfo("Atualizado com sucesso");

			}

		} 
		catch 
		(Exception e) {
			FacesUtils.mensErro("Um erro ocorreu");
			e.printStackTrace();
		}

		return "sucesso";

	}

Alguém pode me dar uma dica aí… agradecido…

teste novo

java.lang.NullPointerException

at br.com.netservice.controller.LocalidadeController.salvar(LocalidadeController.java:125)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:126)

at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:72)

at javax.faces.component.UICommand.broadcast(UICommand.java:312)

at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267)

at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381)

at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:75)

at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)

at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)

at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)

at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)

at java.lang.Thread.run(Unknown Source)

6 Respostas

L

Qual é a linhda 125 da classe LocalidadeController.java?

Javabuntu

coloque o código completo, e dentro das tags Code.

B

Você está confundindo um novo registro com um registro nulo. Ambos terão id nulo na hora de salvar, e é por isso que ocorre o erro. Tente atribuir o id -1 para novos registros.

Javabuntu

Provavelmente tem um sequence configurado o que não precisaria ficar atribuindo id na mão. Ou será que alguém fica colocando id na mão? :shock:

[]'s Hewerton Crisóstomo

J

Ok… vou fazer isto… O campo Id é auto incremento e é gerado pelo Hibernate. O que acontece é que estes dados vêm da interface via JSF, e parece que ao gravar o sistema não está conseguindo identificar isto… vou setar o valor par ao Id e testar…

J

a linha 125 é

localidadeDao.salvar(localidade);

Criado 3 de maio de 2009
Ultima resposta 4 de mai. de 2009
Respostas 6
Participantes 4