Busca com Hibernate Annotation + JSF

olá Pessoal,
Neste post resolvi, apresentar um recurso bem simples que temos no hibernate usando a linguagem HQL. Tendo como exemplo aplicação construida no post anterior: Hibernate+ Annotations, iremos apenas neste post criar 2 paginas JavaServerFaces – JSF, e alterar alguns arquivos .java para implementar um sistema de busca no sistema. A ideia aqui é mostrar a facilidade que o framework possibilita, sem falar que nao precisa modificar quase nada do que ja foi construido, apenas adicionar os novos recursos.
Lets go…

Requisitos:
É necessário ter implementado os posts abaixo, sobre hibernate. Aqui vamos apenas dar continuidade aplicação ja desenvolvida.
JSF + Hibernate + MySql no Eclipse
Hibernate Annotations + JSF + MySql

Desenvolvendo

1. Primeiro passo é atualizar a class NewsDAO.java inserindo o metodo que será responsavel por fazer a busca no BD.

//realiza a pesquisa no BD
public List consultar(String letter){
session = ConexaoFactory.getInstance();
/*para entender o HQL o from abaixo será seu bean
 *  o l eh como se fosse o ? que temos o sql usando
 *o PreparedStatement apos o where temos o campo 
 *de pesquisa que eh a coluna na tabela
 *  paraemtro da query para pesquisa do hibernate
 */

Query query = session.createQuery("from NewsLetter l where 
l.nome like :letter");
List list = query.setString("letter", "%"+letter+"%").list();
return list;}

2.Agora vamos criar o metodo responsável por obter os dados no BD e armazenar esses dados em um DataModel, para facilitar a busca. Para isso temos que alterar nossa classe controladora NewsControler.java

/*metodo que armazena o retorno da pesquisa em
* DataTable,de acordo o retorno do metodo 
* de pesquisa  */
public DataModel getBuscar(){
NewsDAO newsdao = new NewsDAO();
/* chamando o metodo de pesquisa 
 * e passando o valor da campo digitado
 */
model = new ListDataModel(newsdao.consultar(keynome));
return model; }

3.Agora criaremos as paginas JSF, a primeira tem o campo de busca, a segunda traz o resultado da busca.












4.Página JSF que exibi o resultado da busca exibirpesquisa.jsp(nao esqueça de importar os tagslib para o JSF.

….
















			

Atualizando faces-config.xml

Deixe seu arquivo faces-config.xml conforme abaixo.


  newsControler
  br.com.controler.NewsControler

  session
 
 
  news
  /news.jsp
  
   salvar
   /sucesso.jsp
  
 
 
  buscar
  /buscar.jsp
  
   pesquisar
   /exibipesquisa.jsp
  
 

Testando

Agora vamos testar a nossa busca, abaixo temos a imagem do nosso BD com alguns newsletter cadastrados, assim podemos nos certificar que a busca trouxe o elemento correto.

Abraço a todos e espero que tenham gostado do post!. Até o próximo pessoal!!