<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Últimas mensagens do tópico "Generic DAO"]]></title>
		<link>http://www.guj.com.br/posts/list/5.java</link>
		<description><![CDATA[Últimas mensagens enviadas no tópico "Generic DAO"]]></description>
		<generator>JForum - http://www.jforum.net</generator>
			<item>
				<title>Generic DAO</title>
				<description><![CDATA[ Caros, <br /> <br /> Estou implementando um DAO Genérico, porém tenho algumas dúvidas que não encontrei, nem no fórum nem pela web.<br /> <br /> Bom, li estes links:<br /> <br /> [url]http://www.hibernate.org/328.html[/url]<br /> [url]http://www-128.ibm.com/developerworks/java/library/j-genericdao.html[/url]<br /> [url]http://aujava.wordpress.com/2006/08/09/generic-dao-and-more/[/url]<br /> [url]http://www.dhptech.com/node/18[/url]<br /> [url]http://www.java2s.com/Code/Java/Hibernate/GenericDaoCreate.htm[/url]<br /> <br /> e fiz uma implementação de um DAO Genérico, que vos passo:<br /> <br /> [code]<br /> //AbstractDAO.java<br /> <br /> package com.marcosperon.dao;<br /> <br /> import java.util.List;<br /> <br /> public interface AbstractDAO &lt;DomainObject, KeyType&gt; {<br /> <br />     public DomainObject load(KeyType id) throws Exception;<br /> <br />     public void update(DomainObject object) throws Exception;<br /> <br />     public void delete(DomainObject object) throws Exception;<br /> <br />     public void save(DomainObject object) throws Exception;<br /> <br />     public void deleteById(KeyType id);<br /> <br />     public List&lt;DomainObject&gt; getList();<br /> <br />     public void deleteAll();<br /> <br />     public int count();<br /> <br /> }<br /> [/code]<br /> <br /> e uma implementação usando hibernate:<br /> <br /> <br /> [code]<br /> //HibernateAbstractDAO.java<br /> <br /> package com.marcosperon.dao.hb;<br /> <br /> import com.marcosperon.dao.AbstractDAO;<br /> import com.marcosperon.hb.HibernateUtility;<br /> import java.io.Serializable;<br /> import java.lang.reflect.ParameterizedType;<br /> import java.lang.reflect.Type;<br /> import java.util.List;<br /> import org.hibernate.Session;<br /> <br /> /**<br />  *<br />  * @author Marcos Peron<br />  */<br /> public abstract class HibernateAbstractDAO&lt;T extends Serializable, KeyType extends Serializable&gt;<br />     implements AbstractDAO&lt;T, KeyType&gt;  {<br /> <br />     @SuppressWarnings(value = "unchecked")<br />     protected Class&lt;T&gt; domainClass = getDomainClass();<br /> <br />     public HibernateAbstractDAO() {<br />     }<br /> <br />     @SuppressWarnings(value = "unchecked")<br />     public T load(KeyType id) {<br />         return ((T)getSession().load(domainClass, id));<br />     }<br /> <br />     public void update(T obj) {<br />         getSession().update(obj);<br />     }<br /> <br />     public void save(T obj) {<br /> <br />         getSession().save(obj);<br />     }<br /> <br />     public void saveOrUpdate(T obj) {<br />         HibernateUtility.beginTransaction();<br />         getSession().saveOrUpdate(obj);<br />         HibernateUtility.commitTransaction();<br />     }<br /> <br />     public void delete(T t) {<br />         getSession().delete(t);<br />     }<br /> <br />     @SuppressWarnings(value = "unchecked")<br />     public List&lt;T&gt; getList() {<br />         Session s = getSession();<br />         return(s.createCriteria(domainClass).list());<br />     }<br /> <br />     public void deleteById(KeyType id) {<br />         Object obj = load(id);<br />         getSession().delete(obj);<br />     }<br /> <br />     public void deleteAll() {<br />         getSession().createQuery("delete " + domainClass.getName()).executeUpdate();<br />     }<br /> <br />     public int count() {<br />         List list = getSession().createQuery("select count(*) from " + domainClass.getName() + " x").list();<br />         Integer count = (Integer) list.get(0);<br />         return(count.intValue());<br />     }<br /> <br />     protected Session getSession() {<br />         return(HibernateUtility.getSession());<br />     }<br /> <br />     @SuppressWarnings(value = "unchecked")<br />     protected Class getDomainClass() {<br />         if (domainClass == null) {<br />             ParameterizedType thisType = (ParameterizedType) getClass().getGenericSuperclass();<br />             domainClass = (Class) thisType.getActualTypeArguments()[0];<br />         }<br />         return domainClass;<br />     }<br /> }<br /> [/code]<br /> <br /> Bom, se eu tiver então um Bean chamado de Bean:<br /> <br /> [code]<br /> //Bean.java<br /> package com.marcosperon.beans;<br /> <br /> import java.io.Serializable;<br /> <br /> public class Bean implements Serializable, Comparable&lt;Long&gt; {<br /> <br />     private static final long serialVersionUID = 1;<br /> <br />     private Long id;<br /> <br />     public Bean() {<br />         //hello do something here<br />     }<br /> <br />     private void setId(Long id) {<br />         this.id = id;<br />     }<br /> <br />     public Long getId() {<br />         return id;<br />     }<br /> <br />     public int compareTo(Long obj) {<br />         //...<br />     }<br /> <br />     public boolean equals(Object obj) {<br />        //...<br />     }<br /> <br />     public int hashCode() {<br />         //...<br />     }<br /> }<br /> [/code]<br /> <br /> e o Bean Person que estende pessoa:<br /> <br /> [code]<br /> //Person.java<br /> <br /> package com.marcosperon.beans;<br /> <br /> public class Person extends Bean {<br /> <br />     private String firstName;<br /> <br />     private String lastName;<br /> <br />     private String personId;<br /> <br />     private boolean active = false;<br /> <br />     public Person() {<br />         super();<br />     }<br /> <br />     public boolean isActive() {<br />         return active;<br />     }<br /> <br />     public void setActive(boolean active) {<br />         this.active = active;<br />     }<br /> <br />     public String getFirstName() {<br />         return firstName;<br />     }<br /> <br />     public void setFirstName(String firstName) {<br />         this.firstName = firstName;<br />     }<br /> <br />     public String getLastName() {<br />         return lastName;<br />     }<br /> <br />     public void setLastName(String lastName) {<br />         this.lastName = lastName;<br />     }<br /> <br />     public void setName(String name) {<br />         if (name == null) {<br />             return;<br />         }<br />         if ("".equals(name)) {<br />             return;<br />         }<br />         int iSpacePosition = name.lastIndexOf(" ");<br />         if (iSpacePosition &gt; -1) {<br />             setFirstName(name.substring(0, iSpacePosition - 1));<br />             setLastName(lastName = name.substring(iSpacePosition + 1));<br />         } else {<br />             setFirstName(name);<br />             setLastName("");<br />         }<br />     }<br /> <br />     public String getName() {<br />         StringBuffer fullName = new StringBuffer(getFirstName().length() + getLastName().length() + 1);<br />         fullName.append(getFirstName());<br />         if (!("".equals(getLastName()))) {<br />             fullName.append(" ");<br />             fullName.append(getLastName());<br />         }<br />         return fullName.toString();<br />     }<br /> <br />     public String getPersonId() {<br />         return personId;<br />     }<br /> <br />     public void setPersonId(String personId) {<br />         this.personId = personId;<br />     }<br /> }<br /> [/code]<br /> <br /> Bom, agora implementando um DAO para cada um, usando da herança, eu faria:<br /> <br /> [code]<br /> //BeanDAO.java<br /> <br /> package com.marcosperon.dao;<br /> <br /> import com.marcosperon.beans.Bean;<br /> <br /> public interface BeanDAO&lt;DomainObject&gt; extends AbstractDAO&lt;DomainObject, Long&gt; {<br /> }<br /> [/code]<br /> <br /> <br /> [code]<br /> //PersonDAO.java<br /> <br /> public interface PersonDAO&lt;Person&gt; extends BeanDAO&lt;Person&gt; {<br /> <br /> 	public List getByName(String name);<br /> <br /> }<br /> [/code]<br /> <br /> <br /> Ok, até ai tudo bem. isso funciona maravilhosamente BEM.<br /> <br /> Porém, se eu criasse outro Bean que estende Person, como Student, e eu quisesse Herdar também os dados da interface PersonDAO, como faria?<br /> Lembrando que eu já passei o tipo para o Generics acima (&lt;Person&gt;).<br /> <br /> Bom, eu poderia na interface PersonDAO, fazer assim:<br /> <br /> [code]<br /> //PersonDAO.java<br /> <br /> public interface PersonDAO&lt;T extends Person&gt; extends BeanDAO&lt;T&gt; {<br /> <br /> 	public List getByName(String name);<br /> <br /> }<br /> [/code]<br /> <br /> e a interface do Student<br /> <br /> [code]<br /> //StudentDAO.java<br /> <br /> public interface StudentDAO&lt;T extends Person&gt; extends PersonDAO&lt;T&gt; {<br /> <br /> 	public List getGroups();<br /> <br /> }<br /> [/code]<br /> <br /> <br /> E na inicialização a minha implementação criar StudentDAO&lt;Student&gt; pd = new StudentDAOImpl&lt;Student&gt;();<br /> <br /> mas quando rodo, essa parte da implementação do hibernate dá erro:<br /> <br /> [code]<br />     @SuppressWarnings(value = "unchecked")<br />     protected Class getDomainClass() {<br />         if (domainClass == null) {<br />             ParameterizedType thisType = (ParameterizedType) getClass().getGenericSuperclass();<br />             domainClass = (Class) thisType.getActualTypeArguments()[0];<br />         }<br />         return domainClass;<br />     }<br /> [/code]<br /> <br /> Porém, se eu fizesse a interface de Student já vir tipada o Generics, ia funcionar numa boa.<br /> <br /> Então minha dúvida é essa, como fazer para não perder a possibilidade de herdar também os DAOs Genéricos e pais, sem ter que determinar um tipo no ultimo DAO.<br /> <br /> Será que me fiz entender?<br /> <br /> Se algúem tiver alguma luz..<br /> <br /> Obrigado<br /> <br /> Abraços]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/66036/347815.java</guid>
				<link>http://www.guj.com.br/posts/preList/66036/347815.java</link>
				<pubDate><![CDATA[Fri, 3 Aug 2007 16:59:57]]> GMT</pubDate>
				<author><![CDATA[ peron]]></author>
			</item>
			<item>
				<title>Re:Generic DAO</title>
				<description><![CDATA[ NO MEU BLOG TU ENCONTRA ISSO:<br /> <br />   <a class="snap_shots" href="http://www.urubatan.com.br/2006/12/27/dao-generico-um-exemplo-a-pedidos/" target="_blank" rel="nofollow">http://www.urubatan.com.br/2006/12/27/dao-generico-um-exemplo-a-pedidos/</a>]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/66036/347960.java</guid>
				<link>http://www.guj.com.br/posts/preList/66036/347960.java</link>
				<pubDate><![CDATA[Sat, 4 Aug 2007 13:43:05]]> GMT</pubDate>
				<author><![CDATA[ juniorsatanas]]></author>
			</item>
			<item>
				<title>Re:Generic DAO</title>
				<description><![CDATA[ [quote=juniorsatanas]NO MEU BLOG TU ENCONTRA ISSO:<br /> <br />   <a class="snap_shots" href="http://www.urubatan.com.br/2006/12/27/dao-generico-um-exemplo-a-pedidos/" target="_blank" rel="nofollow">http://www.urubatan.com.br/2006/12/27/dao-generico-um-exemplo-a-pedidos/</a>[/quote]<br /> <br /> Seu blog?  <img src="http://www.guj.com.br/images/smilies/97ada74b88049a6d50a6ed40898a03d7.gif" border="0"> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/66036/348039.java</guid>
				<link>http://www.guj.com.br/posts/preList/66036/348039.java</link>
				<pubDate><![CDATA[Sat, 4 Aug 2007 19:11:35]]> GMT</pubDate>
				<author><![CDATA[ Mauricio Linhares]]></author>
			</item>
			<item>
				<title>Re:Generic DAO</title>
				<description><![CDATA[ O Exemplo é bom, mas eu gostaria de poder fazer assim:<br /> <br /> [code]<br /> HibernatePersonDAO&lt;Person&gt; p = new HibernatePersonDAO&lt;Person&gt;();<br /> [/code]<br /> <br /> e em tempo de execução pegar Person no HibernateAbstractDAO. <br /> <br /> Assim eu poderia fazer que HibernatePersonDAO extendesse HibernateBeanDAO e teria um DAO Genérico e acima de tudo, com herança dos metodos de acesso ao banco de dados, já que Person é um Bean. <br /> <br /> Isso fica mais prático quando eu criar um HibernateStudentDAO que extende HibernatePersonDAO, pois eu poderia ter um getStudentForClass no StudentDAO mas ele herdaria o getPersonByFirstName do PersonDAO, afinal,  Student é um Person.<br /> <br /> me fiz entender?<br /> <br /> O Problema é que se eu manter o Generic até a ultima classe, esse código:<br /> <br /> [code]<br />     protected Class getDomainClass() {<br />         if (domainClass == null) {<br />             ParameterizedType thisType = (ParameterizedType) getClass().getGenericSuperclass();            <br />             domainClass = (Class) thisType.getActualTypeArguments()[0];<br />         }<br />         return domainClass;<br />     }<br /> [/code]<br /> <br /> retorna o erro:<br /> <br /> [code]<br /> Exception in thread "main" java.lang.ClassCastException: sun.reflect.generics.reflectiveObjects.TypeVariableImpl cannot be cast to java.lang.Class<br />         at com.marcosperon.dao.hb.HibernateAbstractDAO.getDomainClass(HibernateAbstractDAO.java:86)<br />         at com.marcosperon.dao.hb.HibernateAbstractDAO.&lt;init&gt;(HibernateAbstractDAO.java:26)<br />         at com.marcosperon.dao.hb.HibernateBeanDAO.&lt;init&gt;(HibernateBeanDAO.java:24)<br />         at com.marcosperon.dao.hb.HibernatePersonDAO.&lt;init&gt;(HibernatePersonDAO.java:24)<br />         at com.marcosperon.test.TestAll.main(TestAll.java:25)<br /> [/code]<br /> <br /> sendo que TestAll é:<br /> [code]<br /> public class TestAll {<br /> <br />     public TestAll() {<br />     }<br />     <br />     public static void main(String []args) {<br />         HibernatePersonDAO&lt;Person&gt; p = new HibernatePersonDAO&lt;Person&gt;();<br />     }<br /> <br /> }<br /> [/code]<br /> <br /> alguma idéia?<br /> <br /> Grato desde já]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/66036/348247.java</guid>
				<link>http://www.guj.com.br/posts/preList/66036/348247.java</link>
				<pubDate><![CDATA[Mon, 6 Aug 2007 10:14:53]]> GMT</pubDate>
				<author><![CDATA[ peron]]></author>
			</item>
			<item>
				<title>Re:Generic DAO</title>
				<description><![CDATA[ [quote=Maurício Linhares][quote=juniorsatanas]NO MEU BLOG TU ENCONTRA ISSO:<br /> <br />   <a class="snap_shots" href="http://www.urubatan.com.br/2006/12/27/dao-generico-um-exemplo-a-pedidos/" target="_blank" rel="nofollow">http://www.urubatan.com.br/2006/12/27/dao-generico-um-exemplo-a-pedidos/</a>[/quote]<br /> <br /> Seu blog?  <img src="http://www.guj.com.br/images/smilies/97ada74b88049a6d50a6ed40898a03d7.gif" border="0"> [/quote]<br /> <br /> como assim meu blog??? ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/66036/348273.java</guid>
				<link>http://www.guj.com.br/posts/preList/66036/348273.java</link>
				<pubDate><![CDATA[Mon, 6 Aug 2007 10:55:53]]> GMT</pubDate>
				<author><![CDATA[ Tecnoage]]></author>
			</item>
			<item>
				<title>Re:Generic DAO</title>
				<description><![CDATA[ [quote=juniorsatanas]NO MEU BLOG TU ENCONTRA ISSO:<br /> <br />   <a class="snap_shots" href="http://www.urubatan.com.br/2006/12/27/dao-generico-um-exemplo-a-pedidos/" target="_blank" rel="nofollow">http://www.urubatan.com.br/2006/12/27/dao-generico-um-exemplo-a-pedidos/</a>[/quote]<br /> <br /> MUITO PRAZER SENHOR URUBATAN...É UMA HONRA CONHECE-LO.....<br /> <br /> <br />  <img src="http://www.guj.com.br/images/smilies/97ada74b88049a6d50a6ed40898a03d7.gif" border="0">]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/66036/348285.java</guid>
				<link>http://www.guj.com.br/posts/preList/66036/348285.java</link>
				<pubDate><![CDATA[Mon, 6 Aug 2007 11:02:59]]> GMT</pubDate>
				<author><![CDATA[ Giulliano]]></author>
			</item>
			<item>
				<title>Re:Generic DAO</title>
				<description><![CDATA[ [quote=juniorsatanas]NO MEU BLOG TU ENCONTRA ISSO:<br /> <br />   <a class="snap_shots" href="http://www.urubatan.com.br/2006/12/27/dao-generico-um-exemplo-a-pedidos/" target="_blank" rel="nofollow">http://www.urubatan.com.br/2006/12/27/dao-generico-um-exemplo-a-pedidos/</a>[/quote]<br /> <br /> Afffff.....que lixo de pessoa, você deveria sentir  <img src="http://www.guj.com.br/images/smilies/499fd50bc713bfcdf2ab5a23c00c2d62.gif" border="0"> <br /> <br /> Plagio na cara larga... <img src="http://www.guj.com.br/images/smilies/e78feac27fa924c4d0ad6cf5819f3554.gif" border="0"> <br /> <br /> Receba todo o ódio do GUJ<br /> <br />  <img src="http://www.guj.com.br/images/smilies/2e207fad049d4d292f60607f80f05768.gif" border="0"> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/66036/348337.java</guid>
				<link>http://www.guj.com.br/posts/preList/66036/348337.java</link>
				<pubDate><![CDATA[Mon, 6 Aug 2007 12:16:29]]> GMT</pubDate>
				<author><![CDATA[ neohacker]]></author>
			</item>
			<item>
				<title>Re:Generic DAO</title>
				<description><![CDATA[ [quote=juniorsatanas]NO MEU BLOG TU ENCONTRA ISSO:<br /> <br />   <a class="snap_shots" href="http://www.urubatan.com.br/2006/12/27/dao-generico-um-exemplo-a-pedidos/" target="_blank" rel="nofollow">http://www.urubatan.com.br/2006/12/27/dao-generico-um-exemplo-a-pedidos/</a>[/quote]<br /> [b]SEU BLOG?[/b]<br /> <br /> [b]Que moleque sujo...[/b] hehehehe<br /> <br /> [color=darkred]Deve ser aquelas crianças contadora de historia e mentirosa...[/color] <img src="http://www.guj.com.br/images/smilies/908627bbe5e9f6a080977db8c365caff.gif" border="0"> <br /> [size=9]Que feio isso!!![/size]<br /> <br /> [quote]NO MEU BLOG...[/quote]foi ótimo....!]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/66036/348370.java</guid>
				<link>http://www.guj.com.br/posts/preList/66036/348370.java</link>
				<pubDate><![CDATA[Mon, 6 Aug 2007 13:30:52]]> GMT</pubDate>
				<author><![CDATA[ Alexandre Ferreira]]></author>
			</item>
			<item>
				<title>Re:Generic DAO</title>
				<description><![CDATA[ [quote=juniorsatanas]<br /> NO MEU BLOG TU ENCONTRA ISSO: <br /> [/quote]<br /> <br /> Tsc tsc tsc... cade o VERDADEIRO dono do blog pra ler isso?]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/66036/348384.java</guid>
				<link>http://www.guj.com.br/posts/preList/66036/348384.java</link>
				<pubDate><![CDATA[Mon, 6 Aug 2007 14:15:02]]> GMT</pubDate>
				<author><![CDATA[ RaulCarlin]]></author>
			</item>
			<item>
				<title>Re:Generic DAO</title>
				<description><![CDATA[ to aqui <img src="http://www.guj.com.br/images/smilies/283a16da79f3aa23fe1025c96295f04f.gif" border="0"><br /> <br /> valeu pelo link hehehehe<br /> <br /> mas chegar se adonando do blog assim ...<br /> só falta aparecer um post la que não foi escrito por mim agora <img src="http://www.guj.com.br/images/smilies/283a16da79f3aa23fe1025c96295f04f.gif" border="0"><br /> hehehe]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/66036/348432.java</guid>
				<link>http://www.guj.com.br/posts/preList/66036/348432.java</link>
				<pubDate><![CDATA[Mon, 6 Aug 2007 15:56:23]]> GMT</pubDate>
				<author><![CDATA[ urubatan]]></author>
			</item>
			<item>
				<title>Re:Generic DAO</title>
				<description><![CDATA[ Merece um L.A.I. ( [url=http://desciclo.pedia.ws/wiki/Losango_Aberto_Invertido]Losango Aberto Invertido[/url] ).  <img src="http://www.guj.com.br/images/smilies/2e207fad049d4d292f60607f80f05768.gif" border="0"> <br /> Tomando coisas dos outros, que feio...]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/66036/348457.java</guid>
				<link>http://www.guj.com.br/posts/preList/66036/348457.java</link>
				<pubDate><![CDATA[Mon, 6 Aug 2007 16:38:35]]> GMT</pubDate>
				<author><![CDATA[ maquiavelbona]]></author>
			</item>
			<item>
				<title>Re:Generic DAO</title>
				<description><![CDATA[ <br /> <br />                EU SEMPRE VOU LÁ ESTUDAR, LER ETC.. <br /> <br />                                 ISSO ME DA O DIREITO DE CHAMAR DE MEU !HAHAHHAHAH<br /> <br /> urubatan , É UM PROGRAMADOR EDUCADO E SABE QUE FOI SÓ UMA BRINCADEIRA !<br /> <br />  QUASE QUE EU FUI EXPULSO DO GUJ HAHAHHAHHAH<br /> <br />   <br /> <br /> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/66036/350814.java</guid>
				<link>http://www.guj.com.br/posts/preList/66036/350814.java</link>
				<pubDate><![CDATA[Mon, 13 Aug 2007 11:12:12]]> GMT</pubDate>
				<author><![CDATA[ juniorsatanas]]></author>
			</item>
			<item>
				<title>Re:Generic DAO</title>
				<description><![CDATA[ flamess flamesss ea resposta nada!]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/66036/680742.java</guid>
				<link>http://www.guj.com.br/posts/preList/66036/680742.java</link>
				<pubDate><![CDATA[Thu, 7 May 2009 12:20:38]]> GMT</pubDate>
				<author><![CDATA[ benflodin]]></author>
			</item>
			<item>
				<title>Re:Generic DAO</title>
				<description><![CDATA[ [quote=juniorsatanas]<br /> <br />                EU SEMPRE VOU LÁ ESTUDAR, LER ETC.. <br /> <br />                                 ISSO ME DA O DIREITO DE CHAMAR DE MEU !HAHAHHAHAH<br /> <br /> urubatan , É UM PROGRAMADOR EDUCADO E SABE QUE FOI SÓ UMA BRINCADEIRA !<br /> <br />  QUASE QUE EU FUI EXPULSO DO GUJ HAHAHHAHHAH<br /> <br />   <br /> <br /> [/quote]<br /> <br /> Sendo assim.<br /> <br /> Aew povo.. cuidado com o MEU GUJ. o MEU HOTMAIL. <br /> Parem de estudar o MEU JAVA.<br /> <br /> Só seus argumentos não é o suficiente para dizer que algo é seu.<br /> <br /> <br /> <br /> @benflodin<br /> Cara.. seu nome me da medo.. aquelas pilulas loucas o.0]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/66036/680806.java</guid>
				<link>http://www.guj.com.br/posts/preList/66036/680806.java</link>
				<pubDate><![CDATA[Thu, 7 May 2009 13:38:47]]> GMT</pubDate>
				<author><![CDATA[ Mark_Ameba]]></author>
			</item>
			<item>
				<title>Re:Generic DAO</title>
				<description><![CDATA[ Vou fechar isso. <br /> Pior que flame war é flame war ressuscitada; não sei como é que o pessoal encontra essas velharias. <br /> (É claro que sei que é pelo Google, mas acho absurdo o cara não perceber que a discussão morreu há muito tempo). ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/66036/680811.java</guid>
				<link>http://www.guj.com.br/posts/preList/66036/680811.java</link>
				<pubDate><![CDATA[Thu, 7 May 2009 13:41:33]]> GMT</pubDate>
				<author><![CDATA[ thingol]]></author>
			</item>
	</channel>
</rss>