--
Você está recebendo esta mensagem porque se inscreveu no grupo "CEJUG" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para cejug+un...@googlegroups.com.
Para postar neste grupo, envie um e-mail para ce...@googlegroups.com.
Visite este grupo em http://groups.google.com/group/cejug.
Para obter mais opções, acesse https://groups.google.com/d/optout.
Charles Queiroz
Dazen™ IT Services
Technology - Software Development
cha...@dazen.com.br
Fortaleza - CE
Phone: +55 (85) 9786 8562
--
Você recebeu essa mensagem porque está inscrito no grupo "CEJUG" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para cejug+un...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para ce...@googlegroups.com.
Acesse esse grupo em http://groups.google.com/group/cejug.
Para mais opções, acesse https://groups.google.com/d/optout.
Valeu pelo retorno, pessoal. É Sempre bom ler outras opiniões.E gostaria de esclarecer que não acho o uso padrão DAO um exagero. A minha crítica está em usar uma interface GenericDAO para em seguida implementá-la, como se uma classe GenericDAO já não fosse flexível o suficiente.
--
Então, Fred Farias, é como se fosse uma precaução por não sabermos o dia de amanhã. Valeu.
Bom dia, Ardet.
Veja que a classe GenericDAO, "assinou" um contrato com a interface GenericDAO. Para entender melhor, vamos renomear a classe GenericDAO para GenericJpaDAO. Ou seja, eu tenho uma implementação da Interface Genérica utilizando JPA.
Mas imagine que em determinado momento essa solução não é mais suficiente o banco de dados não suporta mais e vocês resolvem fazer um teste migrando para um banco NoSQL (apenas um exemplo, vamos abstrair os cuidados e impactos dessa decisão).
Então podemos fazer um GenericNoSQLDAO implements GenericDAO.
Se o restante foi bem implementado, pouquíssima coisa será necessário para que o projeto continue funcionando normalmente, pois foi projetado para usar a interface.
Será que deu para compreender?
--
Você recebeu essa mensagem porque está inscrito no grupo "CEJUG" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para cejug+un...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para ce...@googlegroups.com.
Acesse esse grupo em http://groups.google.com/group/cejug.
Para mais opções, acesse https://groups.google.com/d/optout.
--
Você está recebendo esta mensagem porque se inscreveu no grupo "CEJUG" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para cejug+un...@googlegroups.com.
Para postar neste grupo, envie um e-mail para ce...@googlegroups.com.
Visite este grupo em http://groups.google.com/group/cejug.
Para obter mais opções, acesse https://groups.google.com/d/optout.
Joaquim Pedro, concordo completamente com suas palavras. Não tem haver com o futuro, mas com hoje. Quero meu negócio bem isolado e separado de qualquer código de persistência, uso DAO por isso, seja DAO/Repository/Açude/Piscina/etc ... o conceito é o mesmo e a testabilidade e isolamento ficam muito melhores.
Se você não vê impacto em usar o EntityManager na sua camada de negócio, blz, manda ver, é sua (pessoas abstrata e ninguém especificamente da lista) decisão de projeto, mas eu não quero essa "sujeira" no meu negócio que por si só já possui muitas regras.
Você terá muito mais classes no seu projeto e muito mais testes para escrever. Os testes não ficam melhores, eles ficam mais volumosos. Tudo isso por causa de uma probabilidade de mudar de fonte de dados.... num futuro que pode não chegar.
O custo de deixar o tal negócio "limpinho" leva tempo a dar retorno do investimento.
--
Você recebeu essa mensagem porque está inscrito no grupo "CEJUG" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para cejug+un...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para ce...@googlegroups.com.
Acesse esse grupo em http://groups.google.com/group/cejug.
Para mais opções, acesse https://groups.google.com/d/optout.
Muito bacana o Spring Data com os Specifications não conhecia ainda, mas ai levanto a seguinte questão, estamos dando exemplos de query simlpes, e query mais complexas envolvendo 5 6 7 ... 10 tabelas ? Queries que não retornem entidades mas sim VO's ? vocês seguiriam a mesma ideologia ? isso não estaria poluindo o service ?
--
Você recebeu essa mensagem porque está inscrito no grupo "CEJUG" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para cejug+un...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para ce...@googlegroups.com.
Acesse esse grupo em http://groups.google.com/group/cejug.
Para mais opções, acesse https://groups.google.com/d/optout.
--
Você está recebendo esta mensagem porque se inscreveu no grupo "CEJUG" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para cejug+un...@googlegroups.com.
Para postar neste grupo, envie um e-mail para ce...@googlegroups.com.
Visite este grupo em http://groups.google.com/group/cejug.
Para obter mais opções, acesse https://groups.google.com/d/optout.
--
Você está recebendo esta mensagem porque se inscreveu no grupo "CEJUG" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para cejug+un...@googlegroups.com.
Para postar neste grupo, envie um e-mail para ce...@googlegroups.com.
Visite este grupo em http://groups.google.com/group/cejug.
Para obter mais opções, acesse https://groups.google.com/d/optout.
--
Você está recebendo esta mensagem porque se inscreveu no grupo "CEJUG" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para cejug+un...@googlegroups.com.
Para postar neste grupo, envie um e-mail para ce...@googlegroups.com.
Visite este grupo em http://groups.google.com/group/cejug.
Para obter mais opções, acesse https://groups.google.com/d/optout.
Eu acabei falando errado. Mas o que eu quis dizer foi, vamo dizer que a gente queira deixar de usar o DAO por só querer usar as abstrações da JPA e pronto certo?Posso ta errado, mas exemplo de sistema que eu tenho aqui que usa tanto JPA, como JDBC e Criteria. Como faria? Não seria melhor ter tudo no DAO pra organizar melhor?
--Davi Mustafa
Eu acabei falando errado. Mas o que eu quis dizer foi, vamo dizer que a gente queira deixar de usar o DAO por só querer usar as abstrações da JPA e pronto certo?
Posso ta errado, mas exemplo de sistema que eu tenho aqui que usa tanto JPA, como JDBC e Criteria. Como faria? Não seria melhor ter tudo no DAO pra organizar melhor?
Em 5 de março de 2015 11:42, Daniel Cunha <danie...@gmail.com> escreveu:
--Davi Mustafa
--
Você recebeu essa mensagem porque está inscrito no grupo "CEJUG" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para cejug+un...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para ce...@googlegroups.com.
Acesse esse grupo em http://groups.google.com/group/cejug.
Para mais opções, acesse https://groups.google.com/d/optout.
Reduces Code Complexity in Business ObjectsBecause the DAOs manage all the data access complexities, it simplifies the code in the business objects and other data clients that use the DAOs. All implementation-related code (such as SQL statements) is contained in the DAO and not in the business object. This improves code readability and development productivity.
fonte: http://www.oracle.com/technetwork/java/dataaccessobject-138824.html
O link também fala sobre o esforço a mais necessário e os contras de usar DAO, vale a leitura =D
--
Você recebeu essa mensagem porque está inscrito no grupo "CEJUG" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para cejug+un...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para ce...@googlegroups.com.
Acesse esse grupo em http://groups.google.com/group/cejug.
Para mais opções, acesse https://groups.google.com/d/optout.
Olá, pessoal
Estou mexendo num projeto que usa JPA e o padrão DAO. Já li em alguns blogs que usar DAO em um projeto JPA não é algo necessário, pois a própria JPA já representa uma abstração da camada de persistência, o que eu concordo. Mas alguns optam por manter o uso do DAO por uma questão de organização do código, o que também concordo.
Voltando ao projeto, o que me deixa intrigado é que além da JPA, de uma classe GenericDAO, dos DAOs das entidades que precisam de consultas que vão além daquelas fornecidas pelo GenericDAO ainda há, também, uma interface GenericDAO. Qual a necessidade dessa interface?
Na minha opinião fica parecendo um exagero de boas práticas(aquela de programar pensando em interfaces). Pra mim parece estranho ter uma interface de algo genérico. Isso não seria redundante?
Gostaria de ler a opinião de vocês. Sou praticamente um iniciante e posso estar tirando conclusões precipitadas.
Eu não sei onde vi, mas li em algum lugar que um grande percentual(acho que era 90%) das aplicações existentes hoje, sã, no fundo,CRUDs.Mas não sei a veracidade disso e não sei no que ele se baseou paradar esta informação.
E consultas em arquivos e coisas do tipo? A camada de negócio também ficaria responsável por isso? Acredito que DAO englobe regras além de operações em banco de dados. Não tenho tanta experiência pra afirmar isso, mas vale a pergunta.
Apesar do termo antigo, os argumentos pros e contras ainda sao validos, o que antes era escrito em native query agora virou jpql e criteria, oq me foi abstraido foi somente qual banco de dados estou usando, o que facilita a portabilidade da aplicação, mas se antes nao era escrito native query no meu service pq escrever jpql ou criteria ? Isso não gera o mesmo problema do native?
Nao estou defendendo q todo projeto deve usar DAO, pois entendo quemanter mais código não é bom, mas se tenho acesso a dados com uma complexidade maior (filtragem, predicates, vo) o padrao DAO claramente se justifica para uma separação distinta da camada de dados da complexidade do negocio, assim tenho a camada de negocio mais enxuta
--
Quando eu olho para isto:
http://docs.oracle.com/javaee/6/api/javax/persistence/EntityManager.html
Bom.. meu EntityManager, ele sabe salvar/alterar/selecionar/apagar
Ele sabe interpretar queries.
Então eu me pergunto:
Pra quê eu criaria um DAO?
O que eu teria no meu DAO?
Eu não uso mais DAO, para mim é uma abstração em algo que já foi abstraído. é o mesmo que usar SOAP em detrimento de Restful, você só esta "encharcando". realmente é uma camada duplicada.