<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comentários sobre: Ei! Como é o seu DAO? Ele é tão abstraído quanto o meu?</title>
	<atom:link href="http://blog.caelum.com.br/ei-como-e-o-seu-dao-ele-e-tao-abstraido-quanto-o-meu/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.caelum.com.br/ei-como-e-o-seu-dao-ele-e-tao-abstraido-quanto-o-meu/</link>
	<description>blog dos desenvolvedores da Caelum</description>
	<lastBuildDate>Wed, 16 May 2012 20:16:36 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>Por: Diego Lovison</title>
		<link>http://blog.caelum.com.br/ei-como-e-o-seu-dao-ele-e-tao-abstraido-quanto-o-meu/comment-page-1/#comment-83109</link>
		<dc:creator>Diego Lovison</dc:creator>
		<pubDate>Sat, 11 Jun 2011 14:28:12 +0000</pubDate>
		<guid isPermaLink="false">http://blog.caelum.com.br/2006/08/26/ei-como-e-o-seu-dao-ele-e-tao-abstraido-quanto-o-meu/#comment-83109</guid>
		<description>Obrigado pela sua resposta Paulo. 

Foi o que acabou acontecendo, eliminamos a implementação do DAO Genérico e, utilizamos somente a interface genérica que passou a ser implementada por cada DAO especifico.

Um motivo disso foi que, em alguns momentos, as informações eram persistidas em arquivos. O fato de invocar o método persist do DAOGenérico sempre, havia momentos em que deveria ser invocado o metódo persist do DAOEspecifico. Isso iria acabar causando confusão para o desenvolvedor. Além de ficar uma arquitetura &quot;confusa&quot;.

Eliminamos a palavra/conceito de DAO e adotamos a de Repository ;)</description>
		<content:encoded><![CDATA[<p>Obrigado pela sua resposta Paulo. </p>
<p>Foi o que acabou acontecendo, eliminamos a implementação do DAO Genérico e, utilizamos somente a interface genérica que passou a ser implementada por cada DAO especifico.</p>
<p>Um motivo disso foi que, em alguns momentos, as informações eram persistidas em arquivos. O fato de invocar o método persist do DAOGenérico sempre, havia momentos em que deveria ser invocado o metódo persist do DAOEspecifico. Isso iria acabar causando confusão para o desenvolvedor. Além de ficar uma arquitetura &#8220;confusa&#8221;.</p>
<p>Eliminamos a palavra/conceito de DAO e adotamos a de Repository <img src='http://caelum.wpengine.netdna-cdn.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Paulo Silveira</title>
		<link>http://blog.caelum.com.br/ei-como-e-o-seu-dao-ele-e-tao-abstraido-quanto-o-meu/comment-page-1/#comment-82918</link>
		<dc:creator>Paulo Silveira</dc:creator>
		<pubDate>Wed, 08 Jun 2011 21:10:16 +0000</pubDate>
		<guid isPermaLink="false">http://blog.caelum.com.br/2006/08/26/ei-como-e-o-seu-dao-ele-e-tao-abstraido-quanto-o-meu/#comment-82918</guid>
		<description>Ola Diego!

É uma opção válida. O que costuma acontecer é que o DAO genérico começa a não servir para muita coisa, pois, mesmo em situações simples como o persist, começamos a colocar outros detalhes de persistência dentro desses métodos, relativos a &quot;lógica de persistência&quot;. A partir desse momento o dao generico nao ajuda muito, nao importa se fizermos elegantemente via injecao de dependencias e sem heranca.</description>
		<content:encoded><![CDATA[<p>Ola Diego!</p>
<p>É uma opção válida. O que costuma acontecer é que o DAO genérico começa a não servir para muita coisa, pois, mesmo em situações simples como o persist, começamos a colocar outros detalhes de persistência dentro desses métodos, relativos a &#8220;lógica de persistência&#8221;. A partir desse momento o dao generico nao ajuda muito, nao importa se fizermos elegantemente via injecao de dependencias e sem heranca.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: diego lovison</title>
		<link>http://blog.caelum.com.br/ei-como-e-o-seu-dao-ele-e-tao-abstraido-quanto-o-meu/comment-page-1/#comment-82808</link>
		<dc:creator>diego lovison</dc:creator>
		<pubDate>Tue, 07 Jun 2011 14:21:16 +0000</pubDate>
		<guid isPermaLink="false">http://blog.caelum.com.br/2006/08/26/ei-como-e-o-seu-dao-ele-e-tao-abstraido-quanto-o-meu/#comment-82808</guid>
		<description>Em vez de estender (DaoGenerico) ou implementar (IDaoGenerico) no DaoEspecifico, por que não injetamos o IDaoGenerico(persist, remove) e utilizamos para operações CRUD. E injetamos também o DaoEspecifico (clientesQueDevem, bonsClientes) e utilizamos para tratar  questões especificas.

Porque vocês não fazem assim? O que tem de errado nesse conceito?

Obrigado ;)</description>
		<content:encoded><![CDATA[<p>Em vez de estender (DaoGenerico) ou implementar (IDaoGenerico) no DaoEspecifico, por que não injetamos o IDaoGenerico(persist, remove) e utilizamos para operações CRUD. E injetamos também o DaoEspecifico (clientesQueDevem, bonsClientes) e utilizamos para tratar  questões especificas.</p>
<p>Porque vocês não fazem assim? O que tem de errado nesse conceito?</p>
<p>Obrigado <img src='http://caelum.wpengine.netdna-cdn.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: lindemberg</title>
		<link>http://blog.caelum.com.br/ei-como-e-o-seu-dao-ele-e-tao-abstraido-quanto-o-meu/comment-page-1/#comment-69662</link>
		<dc:creator>lindemberg</dc:creator>
		<pubDate>Thu, 11 Nov 2010 23:04:07 +0000</pubDate>
		<guid isPermaLink="false">http://blog.caelum.com.br/2006/08/26/ei-como-e-o-seu-dao-ele-e-tao-abstraido-quanto-o-meu/#comment-69662</guid>
		<description>No meu DAO métodos tambem são objetos, logo existem as interfaces

interface Ipersist {
  void persist(T t);
 }

interface Iremove {
   void remove(T t);
 }

interface Isearch {
  T search(Serializable id);
 }</description>
		<content:encoded><![CDATA[<p>No meu DAO métodos tambem são objetos, logo existem as interfaces</p>
<p>interface Ipersist {<br />
  void persist(T t);<br />
 }</p>
<p>interface Iremove {<br />
   void remove(T t);<br />
 }</p>
<p>interface Isearch {<br />
  T search(Serializable id);<br />
 }</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Eduardo</title>
		<link>http://blog.caelum.com.br/ei-como-e-o-seu-dao-ele-e-tao-abstraido-quanto-o-meu/comment-page-1/#comment-64887</link>
		<dc:creator>Eduardo</dc:creator>
		<pubDate>Tue, 20 Apr 2010 01:05:43 +0000</pubDate>
		<guid isPermaLink="false">http://blog.caelum.com.br/2006/08/26/ei-como-e-o-seu-dao-ele-e-tao-abstraido-quanto-o-meu/#comment-64887</guid>
		<description>Fala galera, alguem sabe me dizer como ficaria esse codigo todo sem usar o Hibernate?


Att.</description>
		<content:encoded><![CDATA[<p>Fala galera, alguem sabe me dizer como ficaria esse codigo todo sem usar o Hibernate?</p>
<p>Att.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Marcos</title>
		<link>http://blog.caelum.com.br/ei-como-e-o-seu-dao-ele-e-tao-abstraido-quanto-o-meu/comment-page-1/#comment-52361</link>
		<dc:creator>Marcos</dc:creator>
		<pubDate>Thu, 12 Feb 2009 15:13:33 +0000</pubDate>
		<guid isPermaLink="false">http://blog.caelum.com.br/2006/08/26/ei-como-e-o-seu-dao-ele-e-tao-abstraido-quanto-o-meu/#comment-52361</guid>
		<description>A pergunta é, vale a pena?

* Normalmente uma classe possui muito mais metodos relacinados a dados que um CRUD.
* Agora seu implementador de código pode excluir qualquer coisa acesando diretamente a persistência, isso que dizer que seu código foi desenvolvido para 1 cabeça dar manutenção. Exemplo: excluir uma empresa da base (se não houver Constraint Restrict).  
* Não economizou código, pelo contrario, escreveu mais. Praticamente terá que implementar muitos métodos do objeto session da API Hibernate.

*Nenhum isolamento de pacote...

Não existe uma DAO generico no proprio Hibernate? Porque? ;)</description>
		<content:encoded><![CDATA[<p>A pergunta é, vale a pena?</p>
<p>* Normalmente uma classe possui muito mais metodos relacinados a dados que um CRUD.<br />
* Agora seu implementador de código pode excluir qualquer coisa acesando diretamente a persistência, isso que dizer que seu código foi desenvolvido para 1 cabeça dar manutenção. Exemplo: excluir uma empresa da base (se não houver Constraint Restrict).<br />
* Não economizou código, pelo contrario, escreveu mais. Praticamente terá que implementar muitos métodos do objeto session da API Hibernate.</p>
<p>*Nenhum isolamento de pacote&#8230;</p>
<p>Não existe uma DAO generico no proprio Hibernate? Porque? <img src='http://caelum.wpengine.netdna-cdn.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: rascunho &#187; Blog Archive &#187; links for 2009-01-20</title>
		<link>http://blog.caelum.com.br/ei-como-e-o-seu-dao-ele-e-tao-abstraido-quanto-o-meu/comment-page-1/#comment-51476</link>
		<dc:creator>rascunho &#187; Blog Archive &#187; links for 2009-01-20</dc:creator>
		<pubDate>Tue, 20 Jan 2009 13:28:56 +0000</pubDate>
		<guid isPermaLink="false">http://blog.caelum.com.br/2006/08/26/ei-como-e-o-seu-dao-ele-e-tao-abstraido-quanto-o-meu/#comment-51476</guid>
		<description>[...] Ei! Como é o seu DAO? Ele é tão abstraído quanto o meu? &#124; blog.caelum.com.br Essa é uma pergunta comum entre os desenvolvedores. Alguns acham que há uma fórmula única, que DAO é um pattern fechado e que possui seu diagrama de classes bem definido. Eu discord (tags: blog.caelum.com.br 2009 mes0 dia19 DAO blog_post) [...]</description>
		<content:encoded><![CDATA[<p>[...] Ei! Como é o seu DAO? Ele é tão abstraído quanto o meu? | blog.caelum.com.br Essa é uma pergunta comum entre os desenvolvedores. Alguns acham que há uma fórmula única, que DAO é um pattern fechado e que possui seu diagrama de classes bem definido. Eu discord (tags: blog.caelum.com.br 2009 mes0 dia19 DAO blog_post) [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Paulo</title>
		<link>http://blog.caelum.com.br/ei-como-e-o-seu-dao-ele-e-tao-abstraido-quanto-o-meu/comment-page-1/#comment-50393</link>
		<dc:creator>Paulo</dc:creator>
		<pubDate>Sun, 07 Dec 2008 12:37:57 +0000</pubDate>
		<guid isPermaLink="false">http://blog.caelum.com.br/2006/08/26/ei-como-e-o-seu-dao-ele-e-tao-abstraido-quanto-o-meu/#comment-50393</guid>
		<description>Pois também não entendi onde vou acessar o arquivo persistence.xml com o jpa definido no arquivo ????alguém teria um exemplo pra isso ?????</description>
		<content:encoded><![CDATA[<p>Pois também não entendi onde vou acessar o arquivo persistence.xml com o jpa definido no arquivo ????alguém teria um exemplo pra isso ?????</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Paulo</title>
		<link>http://blog.caelum.com.br/ei-como-e-o-seu-dao-ele-e-tao-abstraido-quanto-o-meu/comment-page-1/#comment-50392</link>
		<dc:creator>Paulo</dc:creator>
		<pubDate>Sun, 07 Dec 2008 12:36:15 +0000</pubDate>
		<guid isPermaLink="false">http://blog.caelum.com.br/2006/08/26/ei-como-e-o-seu-dao-ele-e-tao-abstraido-quanto-o-meu/#comment-50392</guid>
		<description>Olá poderia me dar um exemplo para essa utilização do DAO ,pois sou iniciante e estou com varias duvidas ...</description>
		<content:encoded><![CDATA[<p>Olá poderia me dar um exemplo para essa utilização do DAO ,pois sou iniciante e estou com varias duvidas &#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: BARBARA</title>
		<link>http://blog.caelum.com.br/ei-como-e-o-seu-dao-ele-e-tao-abstraido-quanto-o-meu/comment-page-1/#comment-23261</link>
		<dc:creator>BARBARA</dc:creator>
		<pubDate>Sat, 17 Nov 2007 18:26:05 +0000</pubDate>
		<guid isPermaLink="false">http://blog.caelum.com.br/2006/08/26/ei-como-e-o-seu-dao-ele-e-tao-abstraido-quanto-o-meu/#comment-23261</guid>
		<description>Muito interessante,

Eu utilizo Top Link e gostaria muito de ver um exemplo DAO. Estou desenvolvendo um mas estou tendo alguns probleminhas pois só encontrei exemplos utilizando Hibernate.</description>
		<content:encoded><![CDATA[<p>Muito interessante,</p>
<p>Eu utilizo Top Link e gostaria muito de ver um exemplo DAO. Estou desenvolvendo um mas estou tendo alguns probleminhas pois só encontrei exemplos utilizando Hibernate.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

