Consulta e Lista com Criteria

4 respostas
B

Boa Noite,

Pessoal quero fazer uma consulta e retorna-la em uma lista, bom vou explicar tenho uma tabela:

Historicos,

idHistorico, usuario, setor, e idProcessos(chave estrangeira), quero fazer uma consulta para retornar todos os registros que iguais ao idProcessos, estava fazendo assim no dao:

public List listatudo(Long idProcessos) {

Criteria c = session.createCriteria(Historicos.class).add(

Restrictions.eq(idProcessos”, idProcessos));

c.addOrder(Order.asc(idHistorico));

return c.list();

}

no controller:

<a class="mention" href="/u/path">@Path</a>("/historico/{idProcessos}")

<a class="mention" href="/u/get">@Get</a>

public List lista(Long idProcessos) {

result.include(“idProcessos”, idProcessos);

return this.hdao.listatudo(idProcessos);

}

o formulario que chama e passa o idProcessos:

<display:column style=“text-align:center” class=“opcao”><a href="<c:url value="/historico/${processos.idProcessos }"/>">Historico</display:column>

esta dando o seguinte erro:

Grave: Servlet.service() for servlet [default] in context with path [/Sigepro] threw exception

br.com.caelum.vraptor.InterceptionException: exception raised, check root cause for details: org.hibernate.QueryException: could not resolve property: idProcessos of: br.com.jucesp.modelos.Historicos

at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:96)

at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)

at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)

at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)

at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)

at br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:89)

at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59)

at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)

at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)

at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)

at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:83)

at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)

at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)

at br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:71)

at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)

at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)

at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:48)

at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)

at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)

at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)

at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)

at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:69)

at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)

at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)

at br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:23)

at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)

at br.com.caelum.vraptor.ioc.guice.GuiceProvider.provideForRequest(GuiceProvider.java:76)

at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)

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

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

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

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

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

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

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

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

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

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

at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)

at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)

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

at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

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

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

Caused by: org.hibernate.QueryException: could not resolve property: idProcessos of: br.com.jucesp.modelos.Historicos

at org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:81)

at org.hibernate.persister.entity.AbstractPropertyMapping.toType(AbstractPropertyMapping.java:75)

at org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyTableNumber(AbstractEntityPersister.java:1482)

at org.hibernate.persister.entity.BasicEntityPropertyMapping.toColumns(BasicEntityPropertyMapping.java:62)

at org.hibernate.persister.entity.AbstractEntityPersister.toColumns(AbstractEntityPersister.java:1457)

at org.hibernate.loader.criteria.CriteriaQueryTranslator.getColumns(CriteriaQueryTranslator.java:483)

at org.hibernate.loader.criteria.CriteriaQueryTranslator.findColumns(CriteriaQueryTranslator.java:498)

at org.hibernate.criterion.SimpleExpression.toSqlString(SimpleExpression.java:68)

at org.hibernate.loader.criteria.CriteriaQueryTranslator.getWhereCondition(CriteriaQueryTranslator.java:380)

at org.hibernate.loader.criteria.CriteriaJoinWalker.(CriteriaJoinWalker.java:113)

at org.hibernate.loader.criteria.CriteriaJoinWalker.(CriteriaJoinWalker.java:82)

at org.hibernate.loader.criteria.CriteriaLoader.(CriteriaLoader.java:92)

at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1697)

at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:347)

at br.com.jucesp.dao.HistoricoDAO.listatudo(HistoricoDAO.java:34)

at br.com.jucesp.controller.HistoricosController.lista(HistoricosController.java:61)

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 br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:61)

 43 more

alguem pode me ajudar.

4 Respostas

FabioNoth

Coloca a tab *code para facilitar a leitura;

No seu código ta faltando

Criteria consulta = session.createCriteria(Pessoa.class);
//falta este código
consulta.add(Restrictions.like("nome", variavelFiltro , MatchMode.START));
return consulta.list();

Espero ajudar

B

Mesmo sendo a consulta por uma chave estrangeira e sendo Long (codigo)???

FabioNoth

Quando a chave esta em outra tabela.
Ai você deve adicionar um Alias

//Acho que deve ser isso
consulta.createAlias("nomeDaVarivavelExtrangeira", "e");
consulta.add(Restrictions.like("e.variavel", "%valor_busca%"));

Em, da uma pesquisada nos tópicos do guj! Tem vários disso… Ontem mesmo resolvi um problemão que tinha relacionado a Criteria

B

Fabio desculpa,

mas a minha consulta vai ser na mesma tabela Historico mas o filtro sera um uma chave estrangeira,

no sql é assim:

select * from historicos where idProcessos = filtro

retornar todos os registro igual o filtro??

com criteria é possivel??

Criado 21 de novembro de 2011
Ultima resposta 22 de nov. de 2011
Respostas 4
Participantes 2