Problema com LIKE em criteria

Olá pessoal, estou tendo problema com uma query que teoricamente seria simples:
Bem, consigo obter a consulta a partir de parte do nome, mas não o nome exato do registro, ou seja, consigo obter todas as palavras que contenham DRO, passando ‘DRO’ como parâmetro, mas não consigo, por exemplo, passar: ‘VIDRAÇARIA IMPERIAL - VIDROS - BOX - FORRO - DIVISÓRIAS’ e obtê-lo, abaixo a minha query e parte da página que tenho para obtê-lo:
Query:

	@SuppressWarnings("unchecked")
	public List<Empresa> buscarPorNome(String nome) {
		Criteria query = this.session.createCriteria(Empresa.class).add(
				Restrictions.like("nome", "%" + nome + "%"));
		return query.list();

	}

página (a ideia é que ao escolher/digitar o valor, pudesse obtê-lo, bem, consigo obtê-lo, porém a query, não o traz):

<p:autoComplete value="#{empresaBean.empresa.nome}" var="empresa"
						completeMethod="#{empresaBean.autocompleteEmpresa}"
						itemLabel="#{empresa.nome}" itemValue="#{empresa.nome}"
						converter="Converter"
						onkeyup="this.value = this.value.toUpperCase();"
						maxResults="5"
						size="82">
					</p:autoComplete>
				</div>
				<div id="botaopesq">
					<p:commandLink actionListener="#{empresaBean.buscarPorNome}"
						title="Pesquisar" value="#{empresa.nome}" action="pesquisa">
						<h:graphicImage library="images" name="botao.png" width="118"
							height="27" style="border:0" />
						<f:setPropertyActionListener target="#{empresaBean.empresa}"
							value="#{empresa}" />
					</p:commandLink>

Obrigado desde já os que ajudaram.

Estranho, o Criteria é desse jeito mesmo.

Pergunta boba: você já confirmou se o parâmetro nome está indo certo? Tipo, em maiúsculo mesmo, sem espaço em branco, ou algum outro problema?

Olá, Alys, tudo bem, o parâmetro nome vem corretamente sim, se eu digitar, mas não se clicar sobre ele no autoComplete.

Acho que assim fica melhor:

Restrictions.ilike("nome",  nome,MatchMode.ANYWHERE));

Perdão, algo mudou, ao clicar em um valor do autoComplete, não estou conseguindo o retornar.
A página:

		<div id="campos">
					<p:autoComplete value="#{empresaBean.empresa.nome}" var="empresa"
						completeMethod="#{empresaBean.autocompleteEmpresa}"
						itemLabel="#{empresa.nome}" itemValue="#{empresa.nome}"
						converter="Converter"
						onkeyup="this.value = this.value.toUpperCase();"
						maxResults="5"
						size="82">
					</p:autoComplete>
				</div>
				<div id="botaopesq">
					<h:commandLink actionListener="#{empresaBean.buscarPorNome}"
						title="Pesquisar" value="#{empresa.nome}" action="pesquisa">
						<h:graphicImage library="images" name="botao.png" width="118"
							height="27" style="border:0" />
						<f:setPropertyActionListener target="#{empresaBean.empresa}"
							value="#{empresa}" />
					</h:commandLink>

Vou passar o meu converter:

package com.portal.view;

package com.portal.view;

import java.lang.reflect.Field;

import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;
import javax.persistence.Id;

@FacesConverter(value = "Converter")
public class EntityConverter implements Converter {

	public Object getAsObject(FacesContext ctx, UIComponent component,
			String value) {
		System.out.println("ECV-GO");
		return value;
	}

	public String getAsString(FacesContext ctx, UIComponent component,
			Object obj) {
		System.out.println("ECV-GS");
		if (obj != null && !"".equals(obj)) {
			String id;
			try {
				id = this.getId(getClazz(ctx, component), obj);
				if (id == null) {
					id = "";
				}
				id = id.trim();
				component.getAttributes().put(id,
						getClazz(ctx, component).cast(obj));
				return id;
			} catch (SecurityException e) {
				e.printStackTrace(); // seu log aqui
			} catch (IllegalArgumentException e) {
				e.printStackTrace(); // seu log aqui
			} catch (NoSuchFieldException e) {
				e.printStackTrace(); // seu log aqui
			} catch (IllegalAccessException e) {
				e.printStackTrace(); // seu log aqui
			}
		}
		return null;
	}

	private Class<?> getClazz(FacesContext facesContext, UIComponent component) {
		return component.getValueExpression("value").getType(
				facesContext.getELContext());
	}

	public String getId(Class<?> clazz, Object obj) throws SecurityException,
			NoSuchFieldException, IllegalArgumentException,
			IllegalAccessException {
		for (Field field : clazz.getDeclaredFields()) {
			if ((field.getAnnotation(Id.class)) != null) {
				Field privateField = clazz.getDeclaredField(field.getName());
				privateField.setAccessible(true);
				if (privateField.get(clazz.cast(obj)) != null) {
					return (String) field.getType()
							.cast(privateField.get(clazz.cast(obj))).toString();
				} else {
					return null;
				}
			}
		}
		return null;
	}
}

Não mudou nada, raf4ever.

Bem, não tenho muita experiencia com o primefaces, mas tenho ideia de que o problema possa ser ao obter o valor a partir de um clique, talvez na visão.

tente assim no seu dao

[code]
public List getFiltro(String palavra){

	Session session = HibernateUtil.getSf().openSession();
	session.beginTransaction();
	Query q = session.createQuery(from ContaPagar as conta where conta.nome like :nome);
	q.setString("nome", "%" + palavra + "%");
	List<T> beans = q.list();
	session.getTransaction().commit();
	return beans;[/code]

Opa, vou testar agora.

Continuou o problema.

fiz desse modo, porém continuou o problema

@SuppressWarnings("unchecked") public List&lt;Empresa&gt; buscarPorNome(String nome) { Query query = this.session.createQuery("from Empresa as empresa where empresa.nome like:nome"); query.setString("nome", "%" + nome + "%"); return query.list();