Estou tentando executar a seguinte consulta SQL para gerar um relatório, só que ela gera NullPointerException . .
Porém no banco(Oracle) ela roda perfeitamente..
estou usando dois subSelects e uma função.. será que estou usando da maneira errada ??
Abaixo meu DAO com a minha consulta :
public class ControleDeFaltas {
public List executaConsulta(Date dataIni, Date dataFim) {
Session sessao = HibernateUtil.getSession();
List<ControleFaltas> tbControle = new ArrayList<ControleFaltas>();
String SQL;
SQL = "SELECT func.sigla, func.nome, func.n_apropriacao, hora_possivel_ws(func.sigla, :dataIni, :dataFim) as hora_possivel, SUM(apr.hora) as horas_apropriadas, " +
"((SELECT count(*) as falta FROM tb_falta f WHERE f.dt_dia BETWEEN :dataIni and :dataFim AND f.sigla = lower (func.sigla)) * func.periodo) as falta, " +
"(SELECT SUM(apr.hora) FROM Apropriacao apr WHERE to_date(apr.dia||'/'||apr.mes||'/'||apr.ano, 'DD/MM/YYYY') " +
"BETWEEN :dataIni AND :dataFim AND contrato = '10005' AND func.sigla = upper (apr.pessoa)) as ferias " +
"FROM Funcionario func, Apropriacao apr " +
"WHERE to_date(apr.dia||'/'||apr.mes||'/'||apr.ano, 'DD/MM/YYYY') " +
"BETWEEN :dataIni AND :dataFim " +
"AND apr.pessoa = lower(func.sigla) " +
"AND func.status = 'Ativo' " +
"GROUP BY func.nome, func.sigla, func.n_apropriacao, func.periodo " +
"ORDER BY func.nome, func.sigla ";
try {
sessao.beginTransaction();
Query select = sessao.createQuery(SQL);[b] (43)[/b]
select.setParameter("dataIni", dataIni);
select.setParameter("dataFim", dataFim);
for (Iterator it = select.iterate(); it.hasNext();) {
Object[] obj = (Object[]) it.next();
ControleFaltas campo = new ControleFaltas();
campo.setSigla(obj[0].toString());
campo.setNome(obj[1].toString());
campo.setN_Apropriacao(Integer.parseInt(obj[2].toString()));
campo.setHoras_Possiveis(Double.parseDouble(obj[3].toString()));
campo.setHoras_Apropriadas(Double.parseDouble(obj[4].toString()));
campo.setFaltas(Double.parseDouble(obj[5].toString()));
campo.setFerias(Double.parseDouble(obj[4].toString()));
tbControle.add(campo);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
sessao.close();
}
return tbControle;
}
}
Hibernate: /* FROM Pessoa as p WHERE p.sigla = :sigla AND p.status = :status */ select pessoa0_.sigla as sigla2_, pessoa0_.n_apropriacao as n2_2_, pessoa0_.periodo as periodo2_, pessoa0_.permissao as permissao2_, pessoa0_.status as status2_, pessoa0_.tipo as tipo2_ from pessoa pessoa0_ where pessoa0_.sigla=? and pessoa0_.status=?
Hibernate: /* FROM CadPermissaoRelat cp JOIN FETCH cp.permissaoRelat relat JOIN FETCH cp.permissaoRelatCt ct WHERE cp.sigla = :sigla */ select cadpermiss0_.codigo as codigo15_0_, permissaor1_.codigo as codigo13_1_, permissaor2_.codigo as codigo14_2_, cadpermiss0_.coordenador as coordena2_15_0_, cadpermiss0_.cod_permissao as cod4_15_0_, cadpermiss0_.cod_permissao_ct as cod5_15_0_, cadpermiss0_.sigla as sigla15_0_, permissaor1_.apr_contrato as apr2_13_1_, permissaor1_.apr_contrato_fin as apr3_13_1_, permissaor1_.apr_contrato_func_fin as apr4_13_1_, permissaor1_.apr_contrato_gerencial as apr5_13_1_, permissaor1_.apr_contrato_global as apr6_13_1_, permissaor1_.apr_contratos_validos as apr7_13_1_, permissaor1_.apr_desenho as apr8_13_1_, permissaor1_.apr_dis_atividade_contrato as apr9_13_1_, permissaor1_.apr_disciplina as apr10_13_1_, permissaor1_.apr_disciplina_atividade as apr11_13_1_, permissaor1_.apr_horas_disc as apr12_13_1_, permissaor1_.apr_intervalo_hora_almoco as apr13_13_1_, permissaor1_.APR_POR_DIA as APR14_13_1_, permissaor1_.calculo_ferias as calculo15_13_1_, permissaor1_.chamado as chamado13_1_, permissaor1_.COMP_APR as COMP17_13_1_, permissaor1_.COMP_CARGA_HORARIA as COMP18_13_1_, permissaor1_.COMP_HORAS_APR_PER as COMP19_13_1_, permissaor1_.COMP_TIMESHEET_IFS as COMP20_13_1_, permissaor1_.fds_feriado as fds21_13_1_, permissaor1_.grupo as grupo13_1_, permissaor1_.hora_extra as hora23_13_1_, permissaor1_.hora_possivel_saldo_fin as hora24_13_1_, permissaor1_.HORAS_APR_DISCIPLINA_ATIVIDADE as HORAS25_13_1_, permissaor1_.HORAS_FUNCIONARIO_CONTRATOS as HORAS26_13_1_, permissaor1_.permissao as permissao13_1_, permissaor1_.permissao_joblider as permissao28_13_1_, permissaor1_.PORC_HORA_APR as PORC29_13_1_, permissaor1_.PREENCHIMENTO_TIME_SHEET as PREENCH30_13_1_, permissaor1_.REL_HR_CONTRATO as REL31_13_1_, permissaor1_.REL_HORAIFS as REL32_13_1_, permissaor1_.saldo as saldo13_1_, permissaor1_.SALDO_HORAS_GPS as SALDO34_13_1_, permissaor1_.sem_preencher as sem35_13_1_, permissaor1_.superv_coord as superv36_13_1_, permissaor2_.ct_area as ct2_14_2_, permissaor2_.ct_coordenador as ct3_14_2_, permissaor2_.ct_disciplina as ct4_14_2_, permissaor2_.ct_filial as ct5_14_2_, permissaor2_.ct_job_lider as ct6_14_2_, permissaor2_.ct_todos as ct7_14_2_, permissaor2_.grupo as grupo14_2_ from cad_permissao_relat cadpermiss0_, tb_permissao_relat permissaor1_, tb_permissao_relat_ct permissaor2_ where cadpermiss0_.cod_permissao=permissaor1_.codigo and cadpermiss0_.cod_permissao_ct=permissaor2_.codigo and cadpermiss0_.sigla=?
Hibernate: select SEQ_AUDIT_ACOMP.nextval from dual
Hibernate: /* insert br.com.projectus.acompanhamento.dados.TbAuditAcomp */ insert into TB_AUDIT_ACOMP (DATA_GERACAO, NOME_ARQUIVO, NOME_RELAT, PARAMETROS_RELAT, usuario, codigo) values (?, ?, ?, ?, ?, ?)
java.lang.NullPointerException
at org.hibernate.hql.ast.HqlSqlWalker.setAlias(HqlSqlWalker.java:844)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.aliasedSelectExpr(HqlSqlBaseWalker.java:2069)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectExprList(HqlSqlBaseWalker.java:1832)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectClause(HqlSqlBaseWalker.java:1394)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:553)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229)
at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:228)
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)
[b]at br.com.projectus.acompanhamento.persistencia.ControleDeFaltas.executaConsulta(ControleDeFaltas.java:43)[/b]
at br.com.projectus.acompanhamento.relatorios.RelatorioControleDeFaltas.gerarRelatorio(RelatorioControleDeFaltas.java:58)
at acompanhamento.ControleDeFaltas.btnGerarRelatorio_action(ControleDeFaltas.java:185)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.el.parser.AstValue.invoke(AstValue.java:191)
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
at com.sun.rave.web.ui.appbase.faces.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
at javax.faces.component.UICommand.broadcast(UICommand.java:383)
at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321)
at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:296)
at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253)
at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:466)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
at com.sun.faces.extensions.avatar.lifecycle.PartialTraversalLifecycle.execute(PartialTraversalLifecycle.java:94)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.sun.webui.jsf.util.UploadFilter.doFilter(UploadFilter.java:267)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:285)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:341)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
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:127)
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:298)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1555)
at java.lang.Thread.run(Thread.java:619)
28/12/2011 10:39:32 org.hibernate.hql.ast.ErrorCounter reportError
SEVERE: <AST>:0:0: unexpected AST node: query
28/12/2011 10:39:32 org.hibernate.hql.ast.ErrorCounter reportError
SEVERE: right-hand operand of a binary operator was null
28/12/2011 10:39:32 org.hibernate.hql.ast.ErrorCounter reportError
SEVERE: <AST>:0:0: unexpected end of subtree