[Resolvido] Campos ñ obrigatórios sendo salvos como string vazia ao invés de null (JSF + Richfaces)

Gente, é o seguinte…

Tenho um formulário onde nem todos os campos são obrigatórios…
E quando o usuário salva o registro sem preencher tais campos,
suas respectivas propriedades não estão ficando nulas, e sim, sendo preenchidas com uma string vazia (’’).

Ou seja…
No meu xhtml, por exemplo, eu tenho:

<h:inputText id="complemento" maxlength="100" value="#{participanteBean.participante.endereco.complemento}" style="width:400px;" styleClass="caixatextoCadastro" onfocus="this.style.backgroundColor='#{a4jSkin.additionalBackgroundColor}'" onblur="this.style.backgroundColor='#{a4jSkin.generalBackgroundColor}'" />

Então o usuário não preenche o campo complemento e clica em salvar… ação perfeitamente normal… u.u

Tudo bem… só que no meu bean a propriedade complemento, ao invés de estar nula, está vindo como string vazia.
E consequentemente essa string vazia estava indo pro banco…

Bom, pra solucionar isso…
Estou tratando o valor recebido no set de cada propriedade. Exemplo:

public void setComplemento(String complemento) {
    this.complemento = (complemento.length() == 0) ? null : complemento;
}

Mas, poxa, eu vou ter que fazer isso em todos os campos do tipo String que não forem obrigatórios no form?!

Sinceramente não gostei dessa solução… =/

Não teria um jeito melhor de impedir a gravação de strings vazias no banco?!
Alguma configuração no servidor, no banco de dados… sei lá… o.O

Utilizo o PostgreSQL aqui…

Se alguém tiver uma luz… por favor…

Vlw! 8)

Isso é mesmo muito tosco no jsf.

Cria um “ConverterForClass” para String e faz esse tratamento de

if (value.equals("")){
value = null;
}

no conversor.

[]s

Nossa, Ferry!
Verdade!
Não tinha pensando nisso!

Vou fazer exatamente dessa maneira!

Muito obrigada! ;D

Ah! Só uma perguntinha…

E se um campo não obrigatório já tiver um converter…

Por exemplo:

<h:inputText maxlength="14" id="fax" value="#{participanteBean.participante.fax}" style="width:250px;" styleClass="caixatextoCadastro" converter="#{telefoneConverter}" onkeypress="formataFax(this, event);"/>

Tem como atribuir mais um converter ao campo?!?!

Pronto!
Resolvido!
Coloquei esse tratamento de string vazia em todos os converters já existentes… =)

Gostaria de agrader mais uma vez ao Ferryman
pela grande colaboração! Vlw! :wink: