Erro na consulta, meu FOR está vindo vazio! Como reverter isso ?!? (RESOLVIDO)

1 resposta
G

Tenho que fazer um relatório, para se o cliente selecionar a opção Incluir Atividade, gerar um relatório com a coluna atividade e as informações, mas se ele não clicar, fica da maneira que está.. um relatório sem a coluna Incluir Atividade..

se ele não clicar vem todas as informações de maneira correta, mas quando ele clica pra trazer também a coluna atividade o relatório gera em branco, mas na minha saída não gera nenhum erro. . segue meu DAO
public List retornaConsultaRelatorioAtividade(String dataIni, String dataFim, String contrato, boolean incluirTerceiros, boolean incluirOsAusencia, String cadOs, boolean incluirAtividade, String atividade) {
        Session sessao = HibernateUtil.getSession();
        List tbResultado = new ArrayList();
        Integer numContrato = null;
        String SQL;
        CadOsAusenciaDao dao = new CadOsAusenciaDao();
        double horasSiglaTotal = 0;
        int nroAtividades = 0;
        String ultimaSigla = "";

        if (!contrato.equals("Todos")) {
            numContrato = Integer.parseInt(contrato);
        }

        SQL = "SELECT UPPER(ap.pessoa) as Sigla, ap.n_apropriacao, ap.contrato, ap.os, SUM(ap.hora) as Horas, ap.atividade ";
        SQL += "FROM Apropriacao ap ";
        SQL += "WHERE to_date(ap.dia||'/'||ap.mes||'/'||ap.ano, 'DD/MM/YYYY') BETWEEN to_date(:dataIni,'DD/MM/YYYY') AND to_date(:dataFim, 'DD/MM/YYYY') ";
        if (!incluirTerceiros) {
            SQL += "AND ap.n_apropriacao <90000 ";
        }
        if (!contrato.equals("Todos")) {
            SQL += "AND ap.contrato = :contrato ";
        }
        if (incluirOsAusencia == false) {
            SQL += "AND ap.os != :cadOs ";
        }
        if (incluirAtividade) {
            SQL += "AND ap.atividade = :atividade ";
        }
        SQL += "GROUP BY ap.pessoa, ap.n_apropriacao, ap.contrato, ap.os, ap.atividade ";
        SQL += "ORDER BY ap.pessoa, ap.n_apropriacao, ap.contrato, ap.os, ap.atividade ";

        try {
            sessao.beginTransaction();

            Query query = sessao.createQuery(SQL);
            query.setString("dataIni", dataIni);
            query.setString("dataFim", dataFim);
            if (!contrato.equals("Todos")) {
                query.setInteger("contrato", numContrato);
            }
            if (incluirOsAusencia == false) {
                query.setString("cadOs", dao.retornaOs().getOs());
            }
            if (incluirAtividade) {
                query.setString("atividade", atividade);
            }
            List resultado = query.list();

            for (Iterator it = resultado.iterator(); it.hasNext();) {
                Object[] obj = (Object[]) it.next();
                HorasFuncionarioContratosCampos campo = new HorasFuncionarioContratosCampos();

                campo.setSigla(obj[0].toString());
                campo.setTimeSheet(Integer.parseInt(obj[1].toString()));
                campo.setContrato(Integer.parseInt(obj[2].toString()));
                campo.setOs(obj[3].toString());
                campo.setHoras(Double.parseDouble(obj[4].toString()));
                campo.setAtividade(obj[5].toString());
                tbResultado.add(campo);

                if (nroAtividades == 0) {
                    ultimaSigla = campo.getSigla();
                    nroAtividades++;
                    horasSiglaTotal = campo.getHoras();
                } else {
                    if (!ultimaSigla.equals(campo.getSigla())) {
                        horasTotais.put(ultimaSigla, horasSiglaTotal);
                        ultimaSigla = campo.getSigla();
                        nroAtividades++;
                        horasSiglaTotal = campo.getHoras();
                    } else {
                        horasSiglaTotal += campo.getHoras();
                    }
                }
            }
            horasTotais.put(ultimaSigla, horasSiglaTotal);
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("Exiba erro: " + e);
        } finally {
            sessao.close();
        }

        return tbResultado;
    }

Descobri que ele não está entrando no FOR ou seja, minha consulta está vindo vazia, mas quando executo ela no banco gera perfeitamente..
Não estou entendendo mais nada..
o que está faltando ??

olha minha saída
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 (?, ?, ?, ?, ?, ?)
Hibernate: /* FROM CadOsAusencia cad  */ select cadosausen0_.codigo as codigo34_, cadosausen0_.descricao as descricao34_, cadosausen0_.os as os34_ from cad_os_ausencia cadosausen0_
Hibernate: /* SELECT UPPER(ap.pessoa) as Sigla, ap.n_apropriacao, ap.contrato, ap.os, SUM(ap.hora) as Horas, ap.atividade FROM Apropriacao ap WHERE to_date(ap.dia||'/'||ap.mes||'/'||ap.ano, 'DD/MM/YYYY') BETWEEN to_date(:dataIni,'DD/MM/YYYY') AND to_date(:dataFim, 'DD/MM/YYYY') AND ap.n_apropriacao <90000 AND ap.contrato = :contrato AND ap.os != :cadOs AND ap.atividade = :atividade GROUP BY ap.pessoa, ap.n_apropriacao, ap.contrato, ap.os, ap.atividade ORDER BY ap.pessoa, ap.n_apropriacao, ap.contrato, ap.os, ap.atividade  */ select upper(apropriaca0_.pessoa) as col_0_0_, apropriaca0_.n_apropriacao as col_1_0_, apropriaca0_.contrato as col_2_0_, apropriaca0_.os as col_3_0_, SUM(apropriaca0_.hora) as col_4_0_, apropriaca0_.atividade as col_5_0_ from apropriacao_unico apropriaca0_ where (to_date(apropriaca0_.dia||'/'||apropriaca0_.mes||'/'||apropriaca0_.ano, 'DD/MM/YYYY') between to_date(?, 'DD/MM/YYYY') and to_date(?, 'DD/MM/YYYY')) and apropriaca0_.n_apropriacao<90000 and apropriaca0_.contrato=? and apropriaca0_.os<>? and apropriaca0_.atividade=? group by apropriaca0_.pessoa , apropriaca0_.n_apropriacao , apropriaca0_.contrato , apropriaca0_.os , apropriaca0_.atividade order by apropriaca0_.pessoa, apropriaca0_.n_apropriacao, apropriaca0_.contrato, apropriaca0_.os, apropriaca0_.atividade
08/11/2011 16:31:15 org.hibernate.cfg.Configuration configure
INFO: configuring from resource: /br/com/projectus/util/hibernate.prj_dados.cfg.xml
08/11/2011 16:31:15 org.hibernate.cfg.Configuration getConfigurationInputStream
INFO: Configuration resource: /br/com/projectus/util/hibernate.prj_dados.cfg.xml
08/11/2011 16:31:15 org.hibernate.cfg.Configuration doConfigure
INFO: Configured SessionFactory: null
08/11/2011 16:31:15 org.hibernate.cfg.AnnotationBinder bindClass
INFO: Binding entity from annotated class: br.com.projectus.acompanhamento.dados.PrjFuncionario
08/11/2011 16:31:15 org.hibernate.cfg.annotations.EntityBinder bindTable
INFO: Bind entity br.com.projectus.acompanhamento.dados.PrjFuncionario on table prj_funcionario
08/11/2011 16:31:15 org.hibernate.cfg.AnnotationBinder bindClass
INFO: Binding entity from annotated class: br.com.projectus.acompanhamento.dados.PrjFuncionarioTerc
08/11/2011 16:31:15 org.hibernate.cfg.annotations.EntityBinder bindTable
INFO: Bind entity br.com.projectus.acompanhamento.dados.PrjFuncionarioTerc on table prj_funcionario_terc
08/11/2011 16:31:15 org.hibernate.cfg.AnnotationBinder bindClass
INFO: Binding entity from annotated class: br.com.projectus.acompanhamento.dados.TbNivel
08/11/2011 16:31:15 org.hibernate.cfg.annotations.EntityBinder bindTable
INFO: Bind entity br.com.projectus.acompanhamento.dados.TbNivel on table tb_nivel
08/11/2011 16:31:15 org.hibernate.cfg.AnnotationBinder bindClass
INFO: Binding entity from annotated class: br.com.projectus.acompanhamento.dados.TbDisciplina
08/11/2011 16:31:15 org.hibernate.cfg.annotations.EntityBinder bindTable
INFO: Bind entity br.com.projectus.acompanhamento.dados.TbDisciplina on table tb_disciplina
08/11/2011 16:31:15 org.hibernate.cfg.AnnotationBinder bindClass
INFO: Binding entity from annotated class: br.com.projectus.acompanhamento.dados.TbLocalidade
08/11/2011 16:31:15 org.hibernate.cfg.annotations.EntityBinder bindTable
INFO: Bind entity br.com.projectus.acompanhamento.dados.TbLocalidade on table localidade
08/11/2011 16:31:15 org.hibernate.cfg.AnnotationBinder bindClass
INFO: Binding entity from annotated class: br.com.projectus.acompanhamento.dados.CentroCusto
08/11/2011 16:31:15 org.hibernate.cfg.annotations.EntityBinder bindTable
INFO: Bind entity br.com.projectus.acompanhamento.dados.CentroCusto on table tb_centro_custo_hum
08/11/2011 16:31:15 org.hibernate.cfg.AnnotationBinder bindClass
INFO: Binding entity from annotated class: br.com.projectus.acompanhamento.dados.TbHistFeriasHum
08/11/2011 16:31:15 org.hibernate.cfg.annotations.EntityBinder bindTable
INFO: Bind entity br.com.projectus.acompanhamento.dados.TbHistFeriasHum on table TB_HIST_FERIAS_HUM
08/11/2011 16:31:15 org.hibernate.cfg.AnnotationBinder bindClass
INFO: Binding entity from annotated class: br.com.projectus.acompanhamento.dados.TbHistAfastamentoHum
08/11/2011 16:31:15 org.hibernate.cfg.annotations.EntityBinder bindTable
INFO: Bind entity br.com.projectus.acompanhamento.dados.TbHistAfastamentoHum on table TB_HIST_AFASTAMENTO_HUM
08/11/2011 16:31:15 org.hibernate.cfg.AnnotationBinder bindClass
INFO: Binding entity from annotated class: br.com.projectus.acompanhamento.dados.TbCalendario
08/11/2011 16:31:15 org.hibernate.cfg.annotations.EntityBinder bindTable
INFO: Bind entity br.com.projectus.acompanhamento.dados.TbCalendario on table TB_CALENDARIO_HUM
08/11/2011 16:31:15 org.hibernate.cfg.AnnotationBinder bindClass
INFO: Binding entity from annotated class: br.com.projectus.dados.CalendarioHum
08/11/2011 16:31:15 org.hibernate.cfg.annotations.EntityBinder bindTable
INFO: Bind entity br.com.projectus.dados.CalendarioHum on table tb_calendario_hum
08/11/2011 16:31:15 org.hibernate.cfg.AnnotationBinder bindClass
INFO: Binding entity from annotated class: br.com.projectus.dados.HistFeriasHum
08/11/2011 16:31:15 org.hibernate.cfg.annotations.EntityBinder bindTable
INFO: Bind entity br.com.projectus.dados.HistFeriasHum on table tb_hist_ferias_hum
08/11/2011 16:31:15 org.hibernate.cfg.AnnotationBinder bindClass
INFO: Binding entity from annotated class: br.com.projectus.dados.HistAfastHum
08/11/2011 16:31:15 org.hibernate.cfg.annotations.EntityBinder bindTable
INFO: Bind entity br.com.projectus.dados.HistAfastHum on table tb_hist_afastamento_hum
08/11/2011 16:31:15 org.hibernate.connection.C3P0ConnectionProvider configure
INFO: C3P0 using driver: oracle.jdbc.driver.OracleDriver at URL: jdbc:oracle:thin:@192.168.50.240
08/11/2011 16:31:15 org.hibernate.connection.C3P0ConnectionProvider configure
INFO: Connection properties: {user=prj_dados, password=****}
08/11/2011 16:31:15 org.hibernate.connection.C3P0ConnectionProvider configure
INFO: autocommit mode: false
08/11/2011 16:31:16 org.hibernate.transaction.TransactionManagerLookupFactory getTransactionManagerLookup
INFO: No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
08/11/2011 16:31:16 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Automatic flush during beforeCompletion(): disabled
08/11/2011 16:31:16 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Automatic session close at end of transaction: disabled
08/11/2011 16:31:16 org.hibernate.cfg.SettingsFactory buildSettings
INFO: JDBC batch size: 15
08/11/2011 16:31:16 org.hibernate.cfg.SettingsFactory buildSettings
INFO: JDBC batch updates for versioned data: disabled
08/11/2011 16:31:16 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Scrollable result sets: enabled
08/11/2011 16:31:16 org.hibernate.cfg.SettingsFactory buildSettings
INFO: JDBC3 getGeneratedKeys(): disabled
08/11/2011 16:31:16 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Connection release mode: auto
08/11/2011 16:31:16 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Default batch fetch size: 1
08/11/2011 16:31:16 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Generate SQL with comments: disabled
08/11/2011 16:31:16 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Order SQL updates by primary key: disabled
08/11/2011 16:31:16 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Order SQL inserts for batching: disabled
08/11/2011 16:31:16 org.hibernate.cfg.SettingsFactory createQueryTranslatorFactory
INFO: Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
08/11/2011 16:31:16 org.hibernate.hql.ast.ASTQueryTranslatorFactory <init>
INFO: Using ASTQueryTranslatorFactory
08/11/2011 16:31:16 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Query language substitutions: {}
08/11/2011 16:31:16 org.hibernate.cfg.SettingsFactory buildSettings
INFO: JPA-QL strict compliance: disabled
08/11/2011 16:31:16 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Second-level cache: enabled
08/11/2011 16:31:16 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Query cache: disabled
08/11/2011 16:31:16 org.hibernate.cfg.SettingsFactory createCacheProvider
INFO: Cache provider: org.hibernate.cache.NoCacheProvider
08/11/2011 16:31:16 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Optimize cache for minimal puts: disabled
08/11/2011 16:31:16 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Structured second-level cache entries: disabled
08/11/2011 16:31:16 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Echoing all SQL to stdout
08/11/2011 16:31:17 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Statistics: disabled
08/11/2011 16:31:17 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Deleted entity synthetic identifier rollback: disabled
08/11/2011 16:31:17 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Default entity-mode: pojo
08/11/2011 16:31:17 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Named query checking : enabled
Hibernate: select prjfuncion0_.codigo as codigo77_, prjfuncion0_.area as area77_, prjfuncion0_.area_aux as area3_77_, prjfuncion0_.ativado as ativado77_, prjfuncion0_.cargo as cargo77_, prjfuncion0_.centro_custo as centro6_77_, prjfuncion0_.cnpj as cnpj77_, prjfuncion0_.consorcio as consorcio77_, prjfuncion0_.data_admissao as data9_77_, prjfuncion0_.data_demissao as data10_77_, prjfuncion0_.disciplina as disciplina77_, prjfuncion0_.email as email77_, prjfuncion0_.empresa as empresa77_, prjfuncion0_.leitura as leitura77_, prjfuncion0_.local as local77_, prjfuncion0_.matricula as matricula77_, prjfuncion0_.nivel as nivel77_, prjfuncion0_.nome as nome77_, prjfuncion0_.prleitura as prleitura77_, prjfuncion0_.rg as rg77_, prjfuncion0_.senha as senha77_, prjfuncion0_.setor as setor77_, prjfuncion0_.sigla as sigla77_, prjfuncion0_.suspenso as suspenso77_, prjfuncion0_.tabela as tabela77_, prjfuncion0_.tipo as tipo77_ from prj_dados.prj_funcionario prjfuncion0_ order by prjfuncion0_.sigla
08/11/2011 16:31:17 org.hibernate.impl.SessionFactoryImpl <init>
INFO: building session factory
08/11/2011 16:31:17 org.hibernate.impl.SessionFactoryObjectFactory addInstance
INFO: Not binding factory to JNDI, no JNDI name configured
Hibernate: select centrocust0_.codigo as col_0_0_, centrocust0_.cod_cc as col_1_0_, centrocust0_.descricao as col_2_0_ from prj_dados.tb_centro_custo_hum centrocust0_

Alguém pode me ajudar ??

Obrigado!

1 Resposta

E

Verifique se na linha 48, a variável resultado contém algum valor e se a lista contém sub elementos

List resultado = query.list(); 
     if(resultado == null || resultado.size() == 0) {
          System.out.println("Resultado Vazio");
     }
Criado 8 de novembro de 2011
Ultima resposta 9 de nov. de 2011
Respostas 1
Participantes 2