Estou tendo um problema quando executa uma consulta via HQL no trecho seguinte :
DAOFactory factory = DAOFactory.instance(DAOFactory.HIBERNATE);
ItensOrcDespesasDAO itensOrcDespesasDAO = factory.getItensOrcDespesasDAO();
List<ItensOrcDespesa> listaItensOrcDespesas = (List<ItensOrcDespesa>) itensOrcDespesasDAO.findByHsql("select iod from ItensOrcDespesa as ItensOrcDespesa join iod.projeto as projeto join iod.dspNaturezas as dspNaturezas join iod.orcamento as orcamento where iod.orcamento = "+idOrcamento+" ");
List<ItensOrcDespesasDTO> listaItensOrcDespesasMd = new ArrayList<ItensOrcDespesasDTO>();
for (ItensOrcDespesa itensOrcDespesas : listaItensOrcDespesas) {
listaItensOrcDespesasMd.add((ItensOrcDespesasDTO) Util.entityToBaseModel(itensOrcDespesas,ItensOrcDespesasDTO.class));
}
return listaItensOrcDespesasMd;
Ao executar essa consulta o objeto projeto é retornado vazio, quando observo o log do hibernate ele executa diversas consultas sql, ao meu ver ele deveria executar só uma com todos os devidos joins.
Quando eu executo a consulta da seguinte:
List<ItensOrcDespesa> listaItensOrcDespesas = itensOrcDespesasDAO.findByHsql("from ItensOrcDespesa as ItensOrcDespesa join iod.projeto as projeto join iod.dspNaturezas as dspNaturezas join iod.orcamento as orcamento where iod.orcamento = "+idOrcamento+" ");
ele não executa aquele grande numero de consultas, mas se gera um erro de conversão quando vou fazer a iteração na Lista retornada