<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Últimas mensagens do tópico "Hibernate: Busca Avançada"]]></title>
		<link>http://www.guj.com.br/posts/list/18.java</link>
		<description><![CDATA[Últimas mensagens enviadas no tópico "Hibernate: Busca Avançada"]]></description>
		<generator>JForum - http://www.jforum.net</generator>
			<item>
				<title>Hibernate: Busca Avançada</title>
				<description><![CDATA[ Olá pessoal... há como realizar uma busca utilizando o Hibernate passando um objeto contendo apenas algumas informações armazenadas??<br /> <br /> Por exemplo, se tenho uma classe Cliente e nela tenho:<br /> <br /> - nome;<br /> - idade;<br /> - endereco;<br /> - profissao;<br /> <br /> Porém quero fazer um formulário onde o usuário digita apenas alguns dos dados e ele busca por todos os Clientes que têm os dados passados... por exemplo:<br /> <br /> - nome = "João";<br /> - idade = 21;<br /> - endereco = null;<br /> - profissao = null;<br /> <br /> Daí ele retornaria todos os Clientes em um List, que têm o nome João e 21 anos de idade...<br /> <br /> Enfim, isso é possível?<br /> <br /> Abraços...]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/56858/298465.java</guid>
				<link>http://www.guj.com.br/posts/preList/56858/298465.java</link>
				<pubDate><![CDATA[Wed, 11 Apr 2007 12:48:18]]> GMT</pubDate>
				<author><![CDATA[ adrianostanley]]></author>
			</item>
			<item>
				<title>Re:Hibernate: Busca Avançada</title>
				<description><![CDATA[ Ola arianostanley,<br /> <br /> <br /> aqui temos uma superclasse que faz esse tipo de consulta, com o seguinte código:<br /> <br /> [code]<br />     public Collection&lt;T&gt; findCriteriaByEntity(T object, String[] fieldsOrdinance)<br /> 	    throws DaoException {<br /> <br /> 	Collection&lt;T&gt; list = null;<br /> <br /> 	try {<br /> 	   session = HibernateUtil.currentSession();<br /> 	    Criteria criteria = mountDynaCriteria(session, object);<br /> <br /> 	    criteria.toString();<br /> 	    if (fieldsOrdinance != null) {<br /> 		for (int i = 0; i &lt; fieldsOrdinance.length; i++) {<br /> 		    criteria.addOrder(Order.asc(fieldsOrdinance[i]));<br /> 		}<br /> 	    }<br /> 	    list = criteria.list();<br /> 	    // session.lock(list,LockMode.NONE);<br /> 	} catch (Exception e) {<br /> 	    throw new DaoException("Erro executando findCriteria", e);<br /> 	} <br /> 	return list;<br />     }[/code]<br /> <br /> <br /> e na subclasse só setamos os atributos que queremos que ele faça a consulta:<br /> <br /> [code]<br />     public Collection&lt;T&gt; buscarPessoaByEndereco(Endereco endereco)<br /> 	    throws DaoException {<br /> 	<br /> 	Pessoa pessoa = new Peessoa();<br /> 	<br />         pessoa.setEndereco(endereco);<br /> 	return super.findCriteriaByEntity((T) endereco, null);[/code]<br /> <br /> <br /> Espero que ajude.<br /> <br /> <br /> Ricardo Cabral]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/56858/298469.java</guid>
				<link>http://www.guj.com.br/posts/preList/56858/298469.java</link>
				<pubDate><![CDATA[Wed, 11 Apr 2007 12:54:55]]> GMT</pubDate>
				<author><![CDATA[ Cabral]]></author>
			</item>
			<item>
				<title>Hibernate: Busca Avançada</title>
				<description><![CDATA[ [quote=adrianostanley]Daí ele retornaria todos os Clientes em um List, que têm o nome João e 21 anos de idade...[/quote]<br /> <br /> O Hibernate tem uma sacada muito legal que e o [url=http://www.hibernate.org/hib_docs/v3/reference/en/html/querycriteria.html#querycriteria-examples]Example queries[/url] vc passa pra ele uma entidade e ele procura por todos os atributos nao nulos passados dentro da entidade. Ignorando versão, identificadores e associações.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/56858/298555.java</guid>
				<link>http://www.guj.com.br/posts/preList/56858/298555.java</link>
				<pubDate><![CDATA[Wed, 11 Apr 2007 14:24:33]]> GMT</pubDate>
				<author><![CDATA[ passos]]></author>
			</item>
			<item>
				<title>Re:Hibernate: Busca Avançada</title>
				<description><![CDATA[ E ae passos... era exatamente isso que eu queria... mas agora surgiu mais um empecilho...<br /> <br /> Eu utilizo o SwingBean como framework pros formulários... e ele não seta os campos vazios como null, mas como ""... e o Hibernate acaba buscando no banco de dados por valores "" ao invés de ignorá-los...<br /> <br /> Há como fazer pro Hibernate tratar os "" como null??<br /> <br /> Abraços e obrigado...]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/56858/299737.java</guid>
				<link>http://www.guj.com.br/posts/preList/56858/299737.java</link>
				<pubDate><![CDATA[Fri, 13 Apr 2007 10:44:45]]> GMT</pubDate>
				<author><![CDATA[ adrianostanley]]></author>
			</item>
			<item>
				<title>Re:Hibernate: Busca Avançada</title>
				<description><![CDATA[ [quote=adrianostanley]... Há como fazer pro Hibernate tratar os "" como null??[/quote]<br /> <br /> Não que eu saiba ou ja tenha utilizado. Ate onde eu sei so tem excludeZeroes() ou excludeProperty(name). <br /> <br /> Bem que eles podiam implementar algo do tipo excludeValue("Um Valor Qualquer") ou excludeValues(Uma Collection ou algo assim)<br /> <br /> Nada implede que vc implemente isso mas vai dar um trabalho! <img src="http://www.guj.com.br/images/smilies/3b63d1616c5dfcf29f8a7a031aaa7cad.gif" border="0">]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/56858/299752.java</guid>
				<link>http://www.guj.com.br/posts/preList/56858/299752.java</link>
				<pubDate><![CDATA[Fri, 13 Apr 2007 10:56:43]]> GMT</pubDate>
				<author><![CDATA[ passos]]></author>
			</item>
			<item>
				<title>Re:Hibernate: Busca Avançada</title>
				<description><![CDATA[ Enquanto isso vai na gambiarra mesmo... antes de enviar eu testo cada campo... se tiver "" eu seto como null mesmo! uhauha<br /> <br /> Mas se eu descobrir uma maneira posto aqui...<br /> <br /> Vlw pessoal... abraços!]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/56858/299760.java</guid>
				<link>http://www.guj.com.br/posts/preList/56858/299760.java</link>
				<pubDate><![CDATA[Fri, 13 Apr 2007 11:05:32]]> GMT</pubDate>
				<author><![CDATA[ adrianostanley]]></author>
			</item>
			<item>
				<title>Re:Hibernate: Busca Avançada</title>
				<description><![CDATA[ Estava pensando aqui com meus botões. Se tem como [url=file:///D:/java/Arquitetura/Hibernate/3.2/doc/api/org/hibernate/criterion/Example.html#excludeZeroes()]excluir os zeros[/url], tem que ter como excluir as strings em branco.<br /> <br /> Cria uma classe utilizaria:<br /> [code]public final class NotNullOrBlankPropertySelector implements PropertySelector {<br /> 	public boolean include(Object object, String propertyName, Type type) {<br /> 		return object!=null && (<br /> 			!(object instanceof String) || !( (String) object ).equals("")<br /> 		);<br /> 	}<br /> }<br /> [/code]<br /> <br /> E no seu example set o PropertySelector<br /> [code]<br /> HibernateUtil.getSession()<br /> .createCriteria(SuaEntidade.class)<br /> .add( Example.create(suaInstancia).setPropertySelector(new NotNullOrBlankPropertySelector()) )<br /> .list();<br /> [/code]<br /> <br /> To pensando seriamente em pedir pra eles adicionarem isso na classe Example como uma propriedade excludeBlanks()<br /> <br />  :D <br /> <br /> [update] [url=http://opensource.atlassian.com/projects/hibernate/browse/HHH-2561]Ja pedi[/url] so não sei se eles vão entender meu maldito ingles misturado com o portugues[/update]]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/56858/299933.java</guid>
				<link>http://www.guj.com.br/posts/preList/56858/299933.java</link>
				<pubDate><![CDATA[Fri, 13 Apr 2007 14:52:01]]> GMT</pubDate>
				<author><![CDATA[ passos]]></author>
			</item>
			<item>
				<title>Re:Hibernate: Busca Avançada</title>
				<description><![CDATA[ Boa cara, vou enviar um e-mail pra eles também. Quanto mais pessoas pedirem melhor... abraços!]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/56858/300002.java</guid>
				<link>http://www.guj.com.br/posts/preList/56858/300002.java</link>
				<pubDate><![CDATA[Fri, 13 Apr 2007 16:01:53]]> GMT</pubDate>
				<author><![CDATA[ adrianostanley]]></author>
			</item>
			<item>
				<title>Re:Hibernate: Busca Avançada</title>
				<description><![CDATA[ Entre no Jira e vota<br /> <br /> <a class="snap_shots" href="http://opensource.atlassian.com/projects/hibernate/browse/HHH-2561" target="_blank" rel="nofollow">http://opensource.atlassian.com/projects/hibernate/browse/HHH-2561</a>]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/56858/300030.java</guid>
				<link>http://www.guj.com.br/posts/preList/56858/300030.java</link>
				<pubDate><![CDATA[Fri, 13 Apr 2007 16:29:01]]> GMT</pubDate>
				<author><![CDATA[ passos]]></author>
			</item>
	</channel>
</rss>