Quando optar por orm ou dao?

5 respostas
Rubem_Azenha

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.

Eu geralmente uso DAO + Hibernate.

5 Respostas

Abdon

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); }

pcalcado

ActiveRecord não surgiu no Ruby, foi catalogado pelo Fowler. É muito usado em Ruby on Rails mas não nasceu nele.

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

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

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?

obrigado.

Criado 20 de maio de 2006
Ultima resposta 20 de mai. de 2006
Respostas 5
Participantes 5