Olá pessoal, estou com um problema relativamente simples, porém quebrando a cabeça não consegui realizar uma pesquisa:
Bem, a ideia é simples, a partir de uma String Nome () obter e passá-la para uma listagem.
O método, retornaria uma lista e em seguida pudesse ser obtida numa outra página, embora, por alguma incrível razão obtenho uma excessão de que o método não existe:
Isto está declarado em uma interface DAO:
Isto está declarado em uma classe chamada DAOHibernate:
@SuppressWarnings("unchecked")
public List<Empresa> buscarPorNome(String nome) {
Query query = this.session.createQuery("select e from Empresa e where e.nome LIKE = :nome%");
query.setString("nome", nome);
return query.list();
}
É tratado assim em uma classe de Regra de Negócio
[code] public List<Empresa> buscaPorNome(String nome) {
return this.empresaDAO.buscarPorNome(nome);
}[/code]
e obtida assim em um ManagedBean:
public List<Empresa> getBuscarPorNome() {
String nome = empresa.getNome();
if (this.listagem == null) {
EmpresaRN empresaRN = new EmpresaRN();
this.listagem = empresaRN.buscaPorNome(nome);
}
return this.listagem;
}
Tento obter assim na página:
<div id="campos">
<p:inputText value="#{empresaBean.empresa.nome}"
style="width: 600px;height: 24px; font-size:15px;">
</p:inputText>
</div>
<div id="botaopesq">
<h:commandLink action="#{empresaBean.buscarPorNome}"
title="Pesquisar">
<h:graphicImage library="images" name="botao.png" width="118"
height="27" style="border:0" />
<f:setPropertyActionListener target="#{empresaBean.empresa}"
value="#{nome}" />
<f:setPropertyActionListener target="#{empresaBean.destinoSalvar}"
value="/publico/pesquisa"></f:setPropertyActionListener>
</h:commandLink>
a Excessão: