estou aprendendo a usar o hibernate e também estou iniciando em xdoclet… fiz um teste com uma classe Pessoa.java que através do xdoclet gera o arquivo Pessoa.hbm.xml. até ai tudo certo
gostaria de saber se tem como eu gerar o arquivo PessoaDAO.java, que seria responsável por inserir, consultar, etc… com o xdoclet
pelo que eu saiba e eu uso o xdoclet serve para gerar os arquivos .xml apenas, tanto apra hibernate, como EJB e etc…
agora ele chegar arquivo .java acho que nao faz isso nao
o PessoaDAO.java vc cria ele na mao e nem é tao dificil assim, usando conceito de interface voce cria apenas um arquivo DAO e usa pra toda sua aplicação
To enfrentando a mesma dúvida aqui na empresa.
Mas a verdade é que, do ponto de vista de padroes, sua classe Pessoa é que é um DAO. C só vai ter getters e setters, e uns métodos auxiliares que usam esses getters e setters ou chamam getters e setters dos argumentos (que tb são DAOs).
Pra consultas, vc pode definir custom queries, e vc deve fazer todas essas coisas fora da sua classe Pessoa.
Se vc quer abstrair tudo isso, vc precisa pensar com cuidado nas suas transações. Abstrair transações é uma coisa complexa e vai aumentar muito o seu código.
Uma boa idéia é roubar do Torque o conceito de Peer (ok, ok, não é do Torque pq ele tb roubou de alguém, mas isso é outra história), e esse Peer pode funcionar como auxiliar pra executar operações complexas.
Mas quem quer que manipule as transações tem que ter acesso à Session, ou pelo menos a uma SessionFactory. Cuidado com as “inicializações preguiçosas” também.
Na aplicação que eu tô fazendo, existem poucos DAOs e a gente tá usando fachadas simples com acesso à SessionFactory.
[]s!!
para EJB o xdoclet gera alguns .java também
gera Session Facade, Value Object, …
para o hibernate apenas os XML
no hibernate é melhor os DAOs acessarem apenas o SessionFactory, ja que as sessions não são thread safe
E nem deveriam ser, antes que alguem saia protestando
concordo,
a observação foi só para que ninguem tentasse utiliza-las desta maneira