Problema com consulta HQL Like não retornando valores com espaço no final

Descobri que estou tendo um problema:
Se houver um espaço no final das palavras, tenho problema pelo Mysql, ou seja, ‘Farmácia’ é diferente de 'Farmácia ', o detalhe é que o bendito usuário cadastrou várias palavras com espaço no final, ao usar o <p:autcomplete> contendo o valor, ele pegará com espaço, porém se submeter, não terá nada na busca.
Tentei o trim, mas quando coloco no nome :
public String getNome() {
return nome.trim();
}

public void setNome(String nome) {
    this.nome = nome.trim();

tenho null pointer exception…
e aí, como resolver isso?
Também já tentei fazer o mesmo no parâmetro da consulta, o mesmo acontece e também com javascript na página.
Consulta:

	@SuppressWarnings("unchecked")
	public List&lt;Empresa&gt; buscarPorNome(String nome) {
		Query query = this.session.createQuery("SELECT e FROM Empresa e WHERE e.nome LIKE'%" + nome + "%'");
		return query.list();
	}
	public List&lt;Empresa&gt; buscarPorNome() {
		if (this.listaPesquisa == null) {
			this.listaPesquisa = empresaRN.buscaPorNome(empresa.getNome());
		}

		return this.lista;
	}

Página:

	public List&lt;Empresa&gt; buscarPorNome() {
		if (this.listaPesquisa == null) {
			this.listaPesquisa = empresaRN.buscaPorNome(empresa.getNome());
		}

		return this.lista;
	}

Por que não da o trim quando recebe o dado na view, antes de mandá-lo para a camada de serviço?

Se não me engano, HQL também possui um trim()

E aí, meu caro, tudo bem?
você diz no managedBean?

Tentei fazer deste modo:

public List&lt;Empresa&gt; buscarPorNome() {
		if (this.listaPesquisa == null) {
			this.listaPesquisa = empresaRN.buscaPorNome(empresa.getNome().trim());
		}

Obtenho esta excessão:

Grave: 'java.lang.NullPointerException' recebido ao invocar escuta de ação '#{empresaBean.buscarPorNome}' para o componente 'j_idt57'
Jun 16, 2012 12:05:26 PM javax.faces.event.MethodExpressionActionListener processAction
Grave: java.lang.NullPointerException

que estranho… é eu quis dizer no ManagedBean sim,
posta o botão que invoca a action pra mim, por favor… alterar o método interno não deveria lançar uma exceção na view assim. que esquisito.

Tentou fazer o TRIM na query ?

eu não sei como fazer, até tentei, mas dá pau no Hibernate, abaixo o botão:

Coloquei o input pq é dele que pego o valor:

&lt;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"&gt; &lt;/p:autoComplete&gt; &lt;/div&gt; &lt;div id="botaopesq"&gt; &lt;p:commandLink actionListener="#{empresaBean.buscarPorNome}" title="Pesquisar" value="#{empresa.nome}" action="pesquisa"&gt; &lt;h:graphicImage library="images" name="botao.png" width="118" height="27" style="border:0" /&gt; &lt;f:setPropertyActionListener target="#{empresaBean.empresa}" value="#{empresa}" /&gt; &lt;/p:commandLink&gt;

por que você tem um action e um actionListener? sendo que o action na verdade não é nada?

O trim fica assim:Query query = this.session.createQuery("SELECT e FROM Empresa e WHERE TRIM(e.nome) LIKE '%TRIM(" + nome + ")%'");

Bem, a action, está registrada no faces-config, onde “PESQUISA” é o redirecionamento da página.

&lt;navigation-case&gt;
			&lt;from-outcome&gt;pesquisa&lt;/from-outcome&gt;
			&lt;to-view-id&gt;/publico/pesquisa.xhtml&lt;/to-view-id&gt;
		&lt;/navigation-case&gt;

Que urucubaca, não funfa por nada.

javax.faces.FacesException: Unexpected error restoring state for component with id j_idt3. Cause: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0.