Lavieri
public List<Produto> BuscaNome(String nome) {
if (nome == null || nome.trim().equals(""))
return (List<Produto>) this.session.createCriteria(Produto.class).list();
return (List<Produto>) this.session
.createCriteria(Produto.class)
.add(Restrictions.ilike("nome", "%"+nome+"%"))
.list();
}
ilike quer dizer que ele vai testar se o nome é como o enveido, sem testar o case sensitive… c vc kizer case senstive use like no lugar de ilike…
% é um carcter curinga que quer dizer todos…
ou seja
"%" + nome; //termina com o nome enviado.
nome + "%"; //inicia com o nome enviado.
"%" + nome + "%"; //comtem o nome enviado.
FerTriPa
Lavieri:
public List<Produto> BuscaNome(String nome) {
if (nome == null || nome.trim().equals(""))
return (List<Produto>) this.session.createCriteria(Produto.class).list();
return (List<Produto>) this.session
.createCriteria(Produto.class)
.add(Restrictions.ilike("nome", "%"+nome+"%"))
.list();
}
ilike quer dizer que ele vai testar se o nome é como o enveido, sem testar o case sensitive… c vc kizer case senstive use like no lugar de ilike…
% é um carcter curinga que quer dizer todos…
ou seja
"%" + nome; //termina com o nome enviado.
nome + "%"; //inicia com o nome enviado.
"%" + nome + "%"; //comtem o nome enviado.
Perfeito
Não querendo abusar, mais porque além da comparação nome == null você usou o trim().equals("")?
Lavieri
FerTriPa:
Lavieri:
public List<Produto> BuscaNome(String nome) {
if (nome == null || nome.trim().equals(""))
return (List<Produto>) this.session.createCriteria(Produto.class).list();
return (List<Produto>) this.session
.createCriteria(Produto.class)
.add(Restrictions.ilike("nome", "%"+nome+"%"))
.list();
}
ilike quer dizer que ele vai testar se o nome é como o enveido, sem testar o case sensitive… c vc kizer case senstive use like no lugar de ilike…
% é um carcter curinga que quer dizer todos…
ou seja
"%" + nome; //termina com o nome enviado.
nome + "%"; //inicia com o nome enviado.
"%" + nome + "%"; //comtem o nome enviado.
Perfeito
Não querendo abusar, mais porque além da comparação nome == null você usou o trim().equals("")?
pq buscaNome(null) … vai retornar tudo… assim como
buscaNome("") vai retornar tudo, pois as vezes vc pede um input e é uma string vazi, ou seja com “”
e o trim, é pq alguem pode dar espaço e digitar enter… assim com o trim ele remove espaços vazio atoa…
buscaNome(" “) tb vai retornar tudo
assim como
bsucaNome(” ")
FerTriPa
Entendi!
Obrigado pela ajuda 
jukkinha
Só adicionando…
aqui: .add(Restrictions.ilike(“nome”, “%”+nome+"%"))
poderia usar: .add(Restrictions.ilike(“nome”, nome, MatchMode.ANYWHERE))
o like e o ilike aceitam um terceiro parametro que indica onde a substring deve ser pesquisada
só outra forma de fazer sem escrever os %
tem quatro opcoes… BEGIN, END, EXACT e ANYWHERE