ORM não substitui DAO. Nem vice-e-versa. DAO não serve apenas para operações simples (save, update, delete, list, findById, etc). Todas as buscas complexas que você precisar fazer com a sua entidade no banco precisam ser feitas atraves do DAO, independentemente de se usar ORM ou JDBC na mão.
Assitindo uma palestra na minha facu de patterns, questionei o palestrante sobre prq não usar DAO com hibernate, ele me flw que achava esta camada desnecessaria e que fazia isto usando um pattern chamado active recorde que surgio no ruby. Ele diz (o pattern) que o objeto fica responsavel por se percistir. Ficaria dentro de um objeto de dominio o codigo.
public void save(Object obj){
HibernateUtils.save(obj);
}
AR e Data Mappers (ou DAOs genéricos) possuem vantagens e desvantagens, cabe avaliar o que é melhor em cada caso.
Note que se o palestrante usava Hibernate ele simplesmente não precisa chamar save nenhum visto que o Hibernate (de forma parcida com EJBs) pode salvar mudanças automaticamente nos objetos gerenciados por ele.
Abdon
Bem se vc fizer uma pesquisa, alterar um objeto e dar um flush na session ele vai alterar o objeto, gerar os updates, e para adicionar um novo objeto não seria necessario chamar o save?
J
JBosseur
Hibernate só salva objetos de forma automatico se eles estão atachado a uma sessao se nao nao vai fazer nada…
entao um objeto “novo” nao vai ser salvo automatico pq não faz parte da sessao… ele é detachado
Hibernate te livre em grande parte de escrever codigo para popular objetos
isso é uma grande vantade.
Eu sempre uso Hibernate + XDoclet + Ant … dessa forma nem precisa criar os mappeamentos…
[]´s
B
buscante
galera quais os motivos q levam cada um de vcs a optar por DAO ao invés
de ORM, ou vice versa. tem alguma circunstância quanto ao projeto q
leva a trocar um pelo outro? tamanho? quando usar DAO? quando usar ORM?
quando e onde NUNCA usar DAO? quando e onde NUNCA usar ORM? q tipo de
projeto deve-se optar por um e deixar de o outro de lado?