Erro com filter [RESOLVIDO]

Alguém sabe que pau deu na consulta pelo filtro???

java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at com.dpcomp.webevolution.framework.view.WaveServlet.executeWebClass(WaveServlet.java:41)
	at com.wave.erp.viewria.servlet.ERPAbstractServlet.executeWebClassSpring(ERPAbstractServlet.java:46)
	at com.wave.erp.viewria.servlet.ERPServlet.service(ERPServlet.java:73)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at com.wave.erp.viewria.servlet.SecurityFilter.doFilter(SecurityFilter.java:95)
	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:98)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at com.springsource.insight.collection.tcserver.request.HttpRequestOperationCollectionValve.invoke(HttpRequestOperationCollectionValve.java:84)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.IllegalArgumentException: org.hibernate.hql.ast.QuerySyntaxException: cannot define positional parameter after any named parameters have been defined [Select count(t) from com.wave.erp.orm.cadastro.financeiro.ExercicioEconomico t where t.cdEmpresa = :cdEmpresa and t.status.codigo = ? and t.status.grupo = ?]
	at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:617)
	at org.hibernate.ejb.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:96)
	at sun.reflect.GeneratedMethodAccessor87.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:358)
	at $Proxy291.createQuery(Unknown Source)
	at sun.reflect.GeneratedMethodAccessor87.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:198)
	at $Proxy291.createQuery(Unknown Source)
	at com.dpcomp.webevolution.framework.dao.WaveQLExpression.applyExpression(WaveQLExpression.java:43)
	at com.wave.erp.cadastro.dao.financeiro.ExercicioEconomicoFinder.buscarExerciciosEconomicos(ExercicioEconomicoFinder.java:39)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:198)
	at $Proxy341.buscarExerciciosEconomicos(Unknown Source)
	at com.wave.erp.cadastro.controller.buscador.Buscador.buscarExerciciosEconomicosByFilter(Buscador.java:1036)
	... 27 more
Caused by: org.hibernate.hql.ast.QuerySyntaxException: cannot define positional parameter after any named parameters have been defined [Select count(t) from com.wave.erp.orm.cadastro.financeiro.ExercicioEconomico t where t.cdEmpresa = :cdEmpresa and t.status.codigo = ? and t.status.grupo = ?]
	at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:31)
	at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:24)
	at org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:59)
	at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:235)
	at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:160)
	at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111)
	at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:77)
	at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:56)
	at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72)
	at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
	at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
	at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1623)
	at org.hibernate.ejb.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:93)
	... 47 more


	at java.lang.reflect.Method.invoke(Method.java:601)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:198)
	at $Proxy341.buscarExerciciosEconomicos(Unknown Source)
	at com.wave.erp.cadastro.controller.buscador.Buscador.buscarExerciciosEconomicosByFilter(Buscador.java:1036)
	... 27 more
Caused by: org.hibernate.hql.ast.QuerySyntaxException: cannot define positional parameter after any named parameters have been defined [Select count(t) from com.wave.erp.orm.cadastro.financeiro.ExercicioEconomico t where t.cdEmpresa = :cdEmpresa and t.status.codigo = ? and t.status.grupo = ?]
	at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:31)
	at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:24)
	at org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:59)
	at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:235)
	at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:160)
	at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111)
	at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:77)
	at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:56)
	at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72)
	at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
	at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
	at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1623)
	at org.hibernate.ejb.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:93)
	... 47 more

abraços.

Basta ler o erro mano: Caused by: org.hibernate.hql.ast.QuerySyntaxException: cannot define positional parameter after any named parameters have been defined [Select count(t) from com.wave.erp.orm.cadastro.financeiro.ExercicioEconomico t where t.cdEmpresa = :cdEmpresa and t.status.codigo = ? and t.status.grupo = ?]

você está fazendo alguma coisa errada ai na consulta

Parece q ficou faltando preencher alguns parâmetros. [=

[quote=jakefrog]Basta ler o erro mano: Caused by: org.hibernate.hql.ast.QuerySyntaxException: cannot define positional parameter after any named parameters have been defined [Select count(t) from com.wave.erp.orm.cadastro.financeiro.ExercicioEconomico t where t.cdEmpresa = :cdEmpresa and t.status.codigo = ? and t.status.grupo = ?]

você está fazendo alguma coisa errada ai na consulta

Parece q ficou faltando preencher alguns parâmetros. [=[/quote]

+1

Sempre vale a pena tentar ler a stacktrace :slight_smile: ela não é um monstro hehehehe

Meu filter

@SuppressWarnings("unchecked")
	public JSONReturn buscarExerciciosEconomicosByFilter(ServletRequest request, ServletResponse response){
		JSONReturn jsonReturn = null;
		
		int page = Integer.parseInt(request.getParameter("page"));
		String expressao = request.getParameter("expressao");
		
		Map<String, Object[]> filter = new HashMap<String,Object[]>();
		//filter.put("status.codigo = ? and t.status.grupo = ? ", new String[]{"2", "EECONOMICOACAO"});
		filter.put("status.codigo = :codigo and t.status.grupo = :grupo", new String[]{"2", "EECONOMICOACAO"});
		
		/*
		if (!StringUtils.isBlank(expressao)){
			if(expressao.trim().equals("ENCERRADOS")){
				filter.put("status.codigo = ? and status.grupo = ?", new String[]{"2", "EECONOMICOACAO"});
			}else if(expressao.trim().equals("REABERTOS")){
				filter.put("status.codigo = ? and status.grupo = ?", new String[]{"3", "EECONOMICOACAO"});
			}
		}
		*/
		IPaginationFilter<WeakReference<List<ExercicioEconomicoVO>>> pagination = (IPaginationFilter<WeakReference<List<ExercicioEconomicoVO>>>)
			PaginationHttpSessionStored.getPagination(request, CacheadorSessao.CACHE_EXERCICIO_ECONOMICO_PAGINATION);
		if (pagination == null || !expressao.equals(pagination.getFilter())){
			pagination = new WeakPaginationImpl<List<ExercicioEconomicoVO>>();
			PaginationHttpSessionStored.setPagination(request,CacheadorSessao.CACHE_EXERCICIO_ECONOMICO_PAGINATION, pagination);
			pagination.setFilter(expressao);
			page = 1;
		}
		WeakReference<List<ExercicioEconomicoVO>> weakValor = pagination.getPage(page);
		List<ExercicioEconomicoVO> exerciciosEconomicosVO = (weakValor == null)?null:weakValor.get();
		if (exerciciosEconomicosVO == null){
			int posicao = page - 1;
			if (posicao > 0){
				posicao = posicao*MAX_ROWS_PER_SCREEN;
			}
			Object[] dadosBusca = getExercicioEconomicoFinder().buscarExerciciosEconomicos(posicao, MAX_ROWS_PER_SCREEN, filter);
			Number numberOfRows = (Number)dadosBusca[0];
			List<ExercicioEconomico> exerciciosEconomicos = (List<ExercicioEconomico>)dadosBusca[1];
			exerciciosEconomicosVO = new ArrayList<ExercicioEconomicoVO>();
			for(ExercicioEconomico exercicioEconomico : exerciciosEconomicos){
				ExercicioEconomicoVO exercicioEconomicoVO = new ExercicioEconomicoVO(exercicioEconomico);
				exercicioEconomicoVO.setNumberOfRows(numberOfRows);
				exercicioEconomicoVO.setMaxRows(MAX_ROWS_PER_SCREEN);
				exercicioEconomicoVO.setPagina(page);
				exerciciosEconomicosVO.add(exercicioEconomicoVO);
			}
			pagination.addDataInPage(page, new WeakReference<List<ExercicioEconomicoVO> >(exerciciosEconomicosVO));
		}
		jsonReturn = JSONReturn.newInstance(Consequence.SUCESSO, exerciciosEconomicosVO).include("exercicioEconomico", "exercicioEconomico.modulos");
		return jsonReturn;
	}

Seria os parâmetros passados???

Estava implementando errado a API que constroem a query, mas conseguir resolver aqui.

Abraços.