atom feed31 messages in net.java.dev.cejug.discussao[CEJUG] Re: DAO generico vale a pena?
FromSent OnAttachments
Jean Jorge MichelJun 7, 2011 5:59 pm 
Leandro CostaJun 7, 2011 6:05 pm 
Rafael SantiagoJun 7, 2011 9:19 pm 
Leonardo RuosoJun 8, 2011 3:29 am 
Leonardo RuosoJun 8, 2011 3:40 am 
Wendel CabralJun 8, 2011 4:20 am 
Hildeberto MendonçaJun 8, 2011 4:22 am 
Leandro CostaJun 8, 2011 4:35 am 
Hildeberto MendonçaJun 8, 2011 4:47 am 
Assis JúniorJun 8, 2011 4:50 am 
Leandro CostaJun 8, 2011 4:52 am 
Jean Jorge MichelJun 8, 2011 5:00 am 
Jean Jorge MichelJun 8, 2011 5:12 am 
Petit xDJun 8, 2011 5:18 am 
Rafael PonteJun 8, 2011 5:19 am 
Rafael PonteJun 8, 2011 5:24 am 
Hildeberto MendonçaJun 8, 2011 5:34 am 
Julio ViegasJun 8, 2011 5:41 am 
Guilherme BahiaJun 8, 2011 5:49 am.gif
Jean Jorge MichelJun 8, 2011 5:52 am 
Jean Jorge MichelJun 8, 2011 6:03 am 
Assis JúniorJun 8, 2011 10:09 am 
Jean Jorge MichelJun 10, 2011 9:15 am 
Leonardo RuosoJun 10, 2011 10:32 am 
Leonardo RuosoJun 10, 2011 10:36 am 
MesiasJun 10, 2011 12:16 pm 
Leonardo RuosoJun 10, 2011 12:34 pm 
Assis JúniorJun 10, 2011 2:01 pm 
Assis JúniorJun 10, 2011 2:03 pm 
Ivan AguirreJun 10, 2011 4:44 pm 
Jose MoisesJun 10, 2011 6:32 pm 
Subject:[CEJUG] Re: DAO generico vale a pena?
From:Petit xD (peti@gmail.com)
Date:Jun 8, 2011 5:18:38 am
List:net.java.dev.cejug.discussao

2) Não usar DAO quando se usa JPA/Hiber? Pode me dar um link para eu ver como é isso?

|o|

Em 8 de junho de 2011 09:13, Jean Jorge Michel <jean@gmail.com>escreveu:

Hildeberto,

1) esse sua afirmação de que a lógica de negócio não fica no DAO, eu concordo. Mas uma vez o velho mestre fgaucho me disse o seguinte: "e se tu tiveres que dar rollback numa transação que atualizou X tabelas (entidades), no teu facade tu vai chamar daoX.roll() e depois daoY.roll()? Ou em um só lugar vai voltar a transação inteira? E como vai ficar controlando a abertura e fechamento de transações?" Eu entendi o que ele quis dizer. Mas o DAO não me parece o lugar para lógica alguma, como tu falastes.

2) Não usar DAO quando se usa JPA/Hiber? Pode me dar um link para eu ver como é isso?

Valeu!

Em 8 de junho de 2011 08:47, Hildeberto Mendonça <me@hildeberto.com>escreveu:

Oi Leandro,

DAO significa Data Access Object. O negócio dele é dados e não lógica de negócio. Ele tem métodos que implementam insert, delete, update and select e não deve ser responsável por lógica de negócio. Ele pode ter implementações particulares para cuidade de relacionamentos 1 pra 1 ou joins, mas o foco é sempre em dados.

Dar baixa no estoque pode implicar na atualização de várias tabelas. A lógica dessas atualizações deve estar implementada em uma classe de negócio, EJB por exemplo, que irá usar os DAOs de todas as tabelas envolvidas na transação. A classe EntityManager do JPA possui essas operações acima (insert, update, delete and select). Por isso, seria redundante implementar DAO quando se usa JPA ou Hibernate puro no projeto. 2011/6/8 Leandro Costa <loki@gmail.com>

Rapaz.... eu vejo o JPA como uma camada de interação com a database em um nível superior ao jdbc, e não como um DAO gererico como o Hildeberto citou. A questão de criar classes dao serve para você encapsular a logica do negócio. Imagine um sistema de vendas onde ao efetuar uma venda você tem que dar baixa no estoque do produto. Toda essa logica ficaria centralizada no dao equanto a interface iria apenas chamar a baixa da venda sem se preoculpar com outros detalhes. É mais ou menos por ai. :)

Em 8 de junho de 2011 08:23, Hildeberto Mendonça <me@hildeberto.com>escreveu:

CMP foi descontinuado. JPA é o que cumpre esse papel atualmente. Se você

olhar com atenção, JPA é uma espécie de DAO generico. Muito poderoso. As versões mais recentes dos servidores de aplicação já suportam EJB + JPA há mais de 2 anos.

2011/6/8 Leonardo Ruoso <leon@gmail.com>

Houve outra discussão em que eu manifestei minha opinião sobre o uso indiscriminado de DAO e parece que esse é um caso em que simplesmente você não precisa de DAO. É a velha história da bala-de-prata... Antigamente esse pareceria o caso de usar EJB com CMP, mas parece que essa prática anda meio banida na comunidade local.

Em 7 de junho de 2011 21:59, Jean Jorge Michel <jean@gmail.com

escreveu:

Boa noite pessoal.

Queria saber dos amigos se vcs acham vantagem ter um DAO generico ao invés de DAOs para casa classe do sistema. Deixa eu ver se me faço entender.

Hoje estou vendo um sistema onde TUDO é genérico. Ok, pode ser válido. Mas ai vem aquela pergunta: e o ovo, veio antes ou depois da galinha? Quando temos um DAO genérico e queremos algumas ações específicas para uma classe? Aqui foi feito um DAO para a classe X que estende o genérico e tal.... mas quase toda a classe tem sua peculiaridade, então são muitos DAOs estendendo o genérico.

A Caelum no seu blog fala em interfaces para restringir o DAO genérico. Aí teremos um uma interface do DAO genérico > a implementação do DAO genérico > a Interface de restrição > o DAO que estende o genérico e implementa a interface. Ufa. Se eu vou ter isso para 30 classes eu posso economizar 30 interfaces não tendo esse DAO genérico.

Queria o conselho, a experiência dos amigos sobre o assunto.

Pela atenção obrigado.

* Sent from my cellphone, please forgive the lack of accents and punctuation marks ;) My blogs: http://www.jeanjmichel.blogspot.com and http://www.anonymousbiker.wordpress.com My Twitter: http://twitter.com/jeanjmichel

* Sent from my cellphone, please forgive the lack of accents and punctuation marks ;) My blogs: http://www.jeanjmichel.blogspot.com and http://www.anonymousbiker.wordpress.com My Twitter: http://twitter.com/jeanjmichel

-- Att, Diego Brasil. ( Petit )

"Você tem que ser o espelho da mudança que está propondo. Se eu quero mudar o mundo, tenho que começar por mim. " (Gandhi)

"Estude como se você fosse viver para sempre. Viva como se você fosse morrer amanhã."