Remover espaços em branco (hibernate + mssql2005)

Boa tarde,
Estou com uma duvida cruel. Qual a melhor maneira de “dar um trim()” em strings de um objeto no momento que ele é recuperado pelo hibernate.

ex. É cadastrado no banco “João” mais qdo é recuperado vem “João_______” (underline so pra ilustrar)
Obs. as colunas são declaradas como varchar(123)

Obrigado, aguardo retorno.

Acredito que uma solução seria a utilização de Interceptors…

Esse link pode ajudar também: https://www.hibernate.org/90.html

Legal… vlw ae vou testar aki…

Deve ter uma maneira melhor de fazer mais essa aqui funcionou

import java.io.Serializable;
import org.hibernate.EmptyInterceptor;
import org.hibernate.type.Type;

/**
 *
 * @author HebertBC
 */
public class StringInterceptor extends EmptyInterceptor {

    @Override
    public boolean onLoad(Object entity, Serializable id, Object[] state, String[] propertyNames, Type[] types) {
        int i = 0;
        while (i < state.length) {
            if (state[i] instanceof String) {
                state[i] = ((String) state[i]).trim();
            }
            i++;
        }
        return true;
    }
}

Depois…

Ressuscitando este tópico , tenho o mesmo problema , que inclusive só acontece com M$ Sql Server com um banco de dados já populado.Não entendi a solução , alguem teria uma outra ideia ?Se esta for a unica maneira alguém poderia ajudar a implementar no Vraptor ?

Como é dito aqui http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/queryhql.html#queryhql-expressions
você pode utilizar HQL e especificar os campos que deseja utilizar a função trim.

Não sei se existe essa opção em criteria…

Obrigado , vou tentar traduzir.Estou usando com quebra galho a função trim() em todos os get dos modelos.Me parece que no meu caso o próprio hibernate esta adicionando os espaços em branco , sendo que no banco esta normal.

Esse problema nunca ocorreu comigo, mas você pode dar uma olhada nas configurações desse campo, se não foi acrescentada alguma anotação que force esse padrão de acrescentar espaços.

No mesmo projeto , se eu trocar para um banco de dados mssql ou mysql novo não acontece . O problema é que estou fazendo o projeto em cima de banco de dados existente . Não cheguei lá , mas sei que vou ter problemas também com relacionamentos sem chave estrangeira !