Dúvida com criação dos DAOs  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
pauloperes
JavaEvangelist
[Avatar]

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
[Email] [MSN]
glauber_rochab
JavaBaby
[Avatar]

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
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team