| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/11/2006 10:19:17
|
pauloperes
JavaEvangelist
![[Avatar]](/images/avatar/eab9c5e9815adc4c40a6557495eed6d3.png)
Membro desde: 01/03/2005 11:45:20
Mensagens: 414
Offline
|
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?
|
Paulo
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/11/2006 13:07:07
|
glauber_rochab
JavaBaby
![[Avatar]](/images/avatar/0f06b381e883d28f330111747070706e.jpg)
Membro desde: 03/08/2006 16:51:20
Mensagens: 77
Offline
|
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:
public List carregarTudoOrdenadoNome() throws HibernateException {
Session session = hibernateConfiguracao.openSession();
Criteria criteria = session.createCriteria(Funcionario.class);
criteria.addOrder(Order.asc("nome"));
return (List) criteria.list();
}
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
|
|
|
 |
|
|
|
|