Dúvida com criação dos DAOs

1 resposta
pauloperes

Seguinte, estou desenvolvendo um sistema usando o Hibernate, já criei todas as classes que serão de persistência, os meus DAOs estou tentando finalizar, a duvida é: O sistema vai gerar relatorios entao criei um caso de uso para cada um (ex: GerarRelatorioPaciente, GerarRelatorioContaReceber, etc…), dae surgiu a duvida quando eu tava relendo no HIbernate em Ação sobre consultas de relatório onde usamos projeção e consultas que retornam dados de mais de uma tabela, me diz vc idéia de como ficaria e onde jogar estes metodos e quais DAOS.

Outro detalhe, estou precisando usar o padrao Facade, crio um para cada Caso de Uso(ex. ManterPaciente, ManterContaReceber), e se for assim, não estaria criando mais um conjunto de classe entre as minhas telas e os DAOS?

1 Resposta

glauber_rochab

Cara, respondo sua primeira pergunta pois trabalho extamente com isso.

Resolvo aqui da seguinte forma:
dentro de cada DAO eu crio um método que me devolve uma List com o resultado da minha query.
Ex de um método que retorna a Lista em uma classe DAO:

[i]public List carregarTudoOrdenadoNome() throws HibernateException {

Session session = hibernateConfiguracao.openSession();

Criteria criteria = session.createCriteria(Funcionario.class);

criteria.addOrder(Order.asc(nome));

return (List) criteria.list();

}[/i]

Em seguida eu chamo uma classe que é responsável por fazer a chamada desta Lista e escrever o arquivo xml:

public void gerar(){

Map parameters = new HashMap();

InputStream reportStream = this.getClass().getResourceAsStream("/departamentos.jrxml");

try {

JasperDesign jasperDesign = JasperManager.loadXmlDesign(reportStream);

JasperReport jasperReport = JasperManager.compileReport(jasperDesign);
String[] campos = new String[] {"descricao","funcionarios"};
 RelatorioDepartamentoFuncionariosDataSource relatorioDepartamentoFuncionariosDataSource = new RelatorioDepartamentoFuncionariosDataSource(listaDepartamentos);
JasperPrint jasperPrint = JasperManager.fillReport(jasperReport, parameters, relatorioDepartamentoFuncionariosDataSource);

JasperManager.printReportToPdfFile(jasperPrint, "departamentos.pdf");
} catch (JRException e) {

e.printStackTrace();

}

}

Dá uma olhada neste site:
http://www.javalobby.org/articles/hibernatequery103/?source=archives

Ele vai clarear as ideias,
qq coisa entre em contato.
flw

Criado 30 de novembro de 2006
Ultima resposta 30 de nov. de 2006
Respostas 1
Participantes 2