Hibernate, select com relacionamento [RESOLVIDO]

2 respostas
E

Pessoal, esta dando um problema na seguinte linha

ocorrenciasdao dao = new ocorrenciasdao();
			name_ocorrencias no = dao.getidnameocorrencia(2);

o erro que esta dando é esse :

RAVE: Servlet.service() for servlet [webf.servlet.ControllerServlet] in context with path [/intranet] threw exception [java.lang.IndexOutOfBoundsException: Index: 0, Size: 0] with root cause

java.lang.IndexOutOfBoundsException: Index: 0, Size: 0

at java.util.ArrayList.RangeCheck(Unknown Source)

at java.util.ArrayList.get(Unknown Source)

at intranet.dao.ocorrenciasdao.getidnameocorrencia(ocorrenciasdao.java:80)

at intranet.action.EditarOcorrenciaAction.process(EditarOcorrenciaAction.java:52)

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)
public class ocorrenciasdao extends DAO<ocorrencias>{

	public ocorrenciasdao() {
		super(ocorrencias.class);		
	}


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

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

}

}

public class EditarOcorrenciaAction extends Action {
	public Boolean b_erros;
	@Override
	public void process() throws Exception {

			ocorrenciasdao dao = new ocorrenciasdao();
			name_ocorrencias no = dao.getidnameocorrencia(2);

 
    }
}



public class ocorrencias {
	
	private Integer id;
	private name_ocorrencias name_ocorrencias;	 
	
	public name_ocorrencias getName_ocorrencias() {
		return name_ocorrencias;
	}
	public void setName_ocorrencias(name_ocorrencias name_ocorrencias) {
		this.name_ocorrencias = name_ocorrencias;
	}	

}




<?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="ocorrencias" table="ocorrencias">
		<id name="id" column="id">
			<generator class="native" />
		</id>
			
            <many-to-one name="name_ocorrencias" class="name_ocorrencias" column="idname_ocorrencias"/>				
	</class>
</hibernate-mapping>

2 Respostas

Rodrigo_Sasaki

A exceção lançada é essa:

java.lang.IndexOutOfBoundsException: Index: 0, Size: 0

Que significa que você está tentando acessar o primeiro índice da lista, mas essa lista está vazia, portanto você não pode dar um get(0), nela.

Sua busca não retornou nada, e nesse caso será lançada essa exceção.

E

Deu certo , agora , minha tabela do estava zuada …

Obrigado a todos …

ABc

Criado 17 de setembro de 2012
Ultima resposta 17 de set. de 2012
Respostas 2
Participantes 2