Olá,
Me pintou mais uma duvida…
gerou o erro NullPointerException … e é na minha consulta que está recebendo nulo, todos os campos… como faço pra reverter isso !!!
segue abaixo a consulta .
DAO
try {
session.beginTransaction();
String hql = "SELECT f.sigla, f.nome, f.tipo, f.n_apropriacao, f.local, f.centroCusto, f.descricaoCC, h.hora, h.dt_Dia as data, h.destino as registro ";
hql += "FROM Funcionario f, Horario h ";
hql += "WHERE to_date(h.dt_Dia, 'dd/MM/yyyy') BETWEEN :dataInicio AND :dataFinal ";
hql += "AND to_timestamp(h.hora, 'HH24:MI') > to_timestamp('09:00', 'HH24:MI') ";
hql += "AND to_timestamp(h.hora, 'HH24:MI') < to_timestamp('17:00', 'HH24:MI') ";
hql += "AND flag_destino <> 'atestado'";
Query query = session.createQuery(hql);
query.setParameter("dataInicio", dataInicio);
query.setParameter("dataFinal", dataFinal);
for (Iterator it = query.iterate(); it.hasNext();) {
horasFunc = new HorasFuncionarioPeriodo();
Object[] registro = (Object[]) it.next();
horasFunc.setSigla(registro[0].toString());
horasFunc.setNome(registro[1].toString());
horasFunc.setTipo(registro[2].toString());
horasFunc.setN_Apropriacao(Integer.parseInt(registro[3].toString()));
horasFunc.setLocal(registro[4].toString());
horasFunc.setCentroCusto(registro[5].toString());
horasFunc.setDescricao(registro[6].toString());
horasFunc.setHora(registro[7].toString());
horasFunc.setData(sf.parse(registro[8].toString()));
horasFunc.setRegistro(registro[9].toString());
listaTotal.add(horasFunc);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
session.close();
}
return listaTotal;
e o erro.
Hibernate: /* SELECT f.sigla, f.nome, f.tipo, f.n_apropriacao, f.local, f.centroCusto, f.descricaoCC, h.hora, h.dt_Dia as data, h.destino as registro FROM Funcionario f, Horario h WHERE to_date(h.dt_Dia, 'dd/MM/yyyy') BETWEEN :dataInicio AND :dataFinal AND to_timestamp(h.hora, 'HH24:MI') > to_timestamp('09:00', 'HH24:MI') AND to_timestamp(h.hora, 'HH24:MI') < to_timestamp('17:00', 'HH24:MI') AND flag_destino <> 'atestado' */ select funcionari0_.sigla as col_0_0_, funcionari0_.nome as col_1_0_, funcionari0_.tipo as col_2_0_, funcionari0_.n_apropriacao as col_3_0_, funcionari0_.local as col_4_0_, funcionari0_.CENTRO_CUSTO as col_5_0_, funcionari0_.DESCRICAO as col_6_0_, horario1_.hora as col_7_0_, horario1_.dt_Dia as col_8_0_, horario1_.destino as col_9_0_ from funcionario funcionari0_, horario_unico horario1_ where (to_date(horario1_.dt_Dia, 'dd/MM/yyyy') between ? and ?) and to_timestamp(horario1_.hora, 'HH24:MI')>to_timestamp('09:00', 'HH24:MI') and to_timestamp(horario1_.hora, 'HH24:MI')<to_timestamp('17:00', 'HH24:MI') and flag_destino<>'atestado'
Erro ao gerar o relatorio. java.lang.NullPointerException
java.lang.NullPointerException
acompanhamento.relatorios.RelatorioHorasFuncPeriodo.gerarRelatorio(RelatorioHorasFuncPeriodo.java:42)
nessa classe que aponta o erro…
public class RelatorioHorasFuncPeriodo {
private Date dataInicio;
private Date dataFinal;
public void gerarRelatorio() {
HashMap parametros = new HashMap();
JRBeanCollectionDataSource beanRelatorios;
JasperPrint impressao;
String caminhoJasper, caminhoRelatorio;
HorasFuncionarioPeriodoDao dao = new HorasFuncionarioPeriodoDao();
try {
caminhoJasper = "D:\\Projetos\\Acompanhamento\\web\\relatorios\\jasper\\relHorasFuncPer.jasper";
caminhoRelatorio = "D:\\Projetos\\Acompanhamento\\web\\relatorios\\relHorasFuncPer.xls";
parametros.put("dataInicio", dataInicio);
parametros.put("dataFinal", dataFinal);
beanRelatorios = new JRBeanCollectionDataSource(dao.gethorasFuncionarioPeriodo(dataInicio, dataFinal));
(42) impressao = JasperFillManager.fillReport(caminhoJasper, parametros, beanRelatorios);
//Gerando Xls
JRXlsExporter xls = new JRXlsExporter();
xls.setParameter(JRExporterParameter.JASPER_PRINT, impressao);
xls.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, caminhoRelatorio);
xls.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, false);
xls.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, true);
xls.setParameter(JRXlsExporterParameter.IS_DETECT_CELL_TYPE, true);
xls.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, false);
xls.exportReport();
} catch (Exception e) {
System.out.println("Erro ao gerar o relatorio. " + e);
e.printStackTrace();
}
}
Debugando percebi que o erro está na impressao de beanRelatorios, onde ele faz a consulta no DAO .
Alguém pode me ajudar .?!!??
tenho que terminar isso hoje =/ .
