Java.lang.Integer cannot be cast to intranet.entity.name_ocorrencias - Hibernate[RESOLVIDO]

8 respostas
E

Pessoal,

Fiz um pequeno projeto , e neste projeto esta dando o erro nesta linha

ocorrenciasdao dao = new ocorrenciasdao();
		String vocorrencia1 = getRequest().getParameter("combo");
		name_ocorrencias no = dao.getidnameocorrencia1(Integer.parseInt(vocorrencia1));


public class ocorrenciasdao extends DAO<ocorrencias>{

public name_ocorrencias getidnameocorrencia1(int nro) throws DAOException {
	Query q = query("select id FROM name_ocorrencias o where o.id =:pnro ");	
	q.setParameter("pnro", nro);

	List<name_ocorrencias> results = q.list();
	name_ocorrencias no = results.get(0);
	return no;		
	}

}

OBS. : O valor do getRequest().getParameter(“combo”) é 1.

Segue abaixo o erro completo :

GRAVE: Servlet.service() for servlet [webf.servlet.ControllerServlet] in context with path [/intranet] threw exception [java.lang.ClassCastException: java.lang.Integer cannot be cast to intranet.entity.name_ocorrencias] with root cause

java.lang.ClassCastException: java.lang.Integer cannot be cast to intranet.entity.name_ocorrencias

at intranet.dao.ocorrenciasdao.getidnameocorrencia1(ocorrenciasdao.java:92)

at intranet.action.AbrirOcorrenciaAction.process(AbrirOcorrenciaAction.java:29)

at webf.action.Action.runAction(Action.java:23)

at webf.servlet.ControllerServlet.process(ControllerServlet.java:53)

at webf.servlet.ControllerServlet.doGet(ControllerServlet.java:32)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

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

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

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

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

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)

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

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

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)

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

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

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

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

at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

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

8 Respostas

R

você está buscando somente o ID e não o objeto inteiro, então quando tenta fazer o casting, você tem uma lista de Integer, e não do objeto que quer, tente mudar a query buscando pelo alias o ao invés de id

E

Tentei colocar da seguinte forma e o erro continua :

public name_ocorrencias getidnameocorrencia1(int nro) throws DAOException {
	Query q = query("select o FROM name_ocorrencias o where o.id =:pnro ");	
	q.setParameter("pnro", nro);

	List<name_ocorrencias> results = q.list();
	name_ocorrencias no = results.get(0);
	return no;		
	}

}
C

Qual erro que esta dando agora?

E

segue o erro :

GRAVE: Servlet.service() for servlet [webf.servlet.ControllerServlet] in context with path [/intranet] threw exception [java.lang.ClassCastException: java.lang.Integer cannot be cast to intranet.entity.name_ocorrencias] with root cause

java.lang.ClassCastException: java.lang.Integer cannot be cast to intranet.entity.name_ocorrencias

at intranet.dao.ocorrenciasdao.getidnameocorrencia1(ocorrenciasdao.java:92)

at intranet.action.AbrirOcorrenciaAction.process(AbrirOcorrenciaAction.java:29)

at webf.action.Action.runAction(Action.java:23)

at webf.servlet.ControllerServlet.process(ControllerServlet.java:53)

at webf.servlet.ControllerServlet.doGet(ControllerServlet.java:32)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

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

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

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

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

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)

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

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

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)

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

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

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

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

at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

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

Evandro,

já tentou fazer o cast na linha 7?

provavelmente nesta parte do código que está dando a excessão:

name_ocorrencias no = results.get(0);

Faça da seguinte forma:

name_ocorrencias no = (name_ocorrencias) results.get(0);
E

Tentei colocar dessa forma :

public name_ocorrencias getidnameocorrencia1(int nro) throws DAOException {
	Query q = query("select o FROM name_ocorrencias o where o.id =:pnro ");	
	q.setParameter("pnro", nro);

	List<name_ocorrencias> results = q.list();
	name_ocorrencias no = (name_ocorrencias)  results.get(0);
	return no;		
	}

}
GRAVE: Servlet.service() for servlet [webf.servlet.ControllerServlet] in context with path [/intranet] threw exception [java.lang.ClassCastException: java.lang.Integer cannot be cast to intranet.entity.name_ocorrencias] with root cause

java.lang.ClassCastException: java.lang.Integer cannot be cast to intranet.entity.name_ocorrencias

at intranet.dao.ocorrenciasdao.getidnameocorrencia1(ocorrenciasdao.java:92)

at intranet.action.AbrirOcorrenciaAction.process(AbrirOcorrenciaAction.java:29)

at webf.action.Action.runAction(Action.java:23)

at webf.servlet.ControllerServlet.process(ControllerServlet.java:53)

at webf.servlet.ControllerServlet.doGet(ControllerServlet.java:32)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

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

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

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

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

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)

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

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

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)

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

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

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

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

at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

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

coloca sua entidade name_ocorrencias aqui

E
package intranet.entity;

public class name_ocorrencias {
	
	private Integer id;
	private String nome;
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	} 

}


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >

<hibernate-mapping package="intranet.entity">
	<class name="name_ocorrencias" table="name_ocorrencias">
		<id name="id" column="id">
			<generator class="native" />
		</id>

		<property name="nome" column="nome"  />
	</class>
</hibernate-mapping>
Criado 18 de setembro de 2012
Ultima resposta 18 de set. de 2012
Respostas 8
Participantes 3