Pessoal, estou tentando obter uma lista a partir de um método com uma consulta like, mas estou tendo dificuldade de passar o parametro NOME que por sinal está vindo nulo, como proceder?
O método em uma interface DAO:
public List<Empresa> buscarPorNome(String nome);
Declaração 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 + "%'");
return query.list();
}
Em uma classe que trata regra de negócio:
public List<Empresa> buscaPorNome(String nome) {
return this.empresaDAO.buscarPorNome(nome);
}
ManagedBean:
public List<Empresa> buscarPorNome() {
if (this.listagem == null) {
EmpresaRN empresaRN = new EmpresaRN();
this.lista = empresaRN.buscaPorNome(empresa.getNome());
}
return this.lista;
}
O hibernate mostra o hql assim:
Hibernate:
/* select
e
from
Empresa e
where
e.nome LIKE'null%' */ select
empresa0_.cod_empresa as cod1_1_,
empresa0_.descricao as descricao1_,
empresa0_.email as email1_,
empresa0_.endereco as endereco1_,
empresa0_.logo as logo1_,
empresa0_.nome as nome1_,
empresa0_.prioridade as prioridade1_,
empresa0_.site as site1_,
empresa0_.telefone as telefone1_
from
empresa empresa0_
where
empresa0_.nome like 'null%'
Página:
<p:inputText value="#{empresaBean.empresa.nome}"
style="width: 600px;height: 24px; font-size:15px;">
</p:inputText>
</div>
<div id="botaopesq">
<p:commandLink actionListener="#{empresaBean.buscarPorNome}"
immediate="true" title="Pesquisar"
value="#{empresaBean.empresa.nome}">
<h:graphicImage library="images" name="botao.png" width="118"
height="27" style="border:0" />
<f:setPropertyActionListener target="#{empresaBean.empresa}"
value="#{empresa}" />
<f:setPropertyActionListener target="#{empresaBean.destinoSalvar}"
value="/publico/pesquisa"></f:setPropertyActionListener>
</p:commandLink>