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)