Trazer objeto null em combo

Olá estou com probleminha que ta começando a me encomoda …
assim tenho minhas combo e tem o valor "selecione"
gostaria de quando escolhesse o “selecione” o objeto fosse null pra controller e não um objeto com os atributos null.

exemplo tenho a tela de estado que tem o campo:

<select name="estado.pais.id"> <option value="">- selecione -</option> <c:forEach items="${paisList}" var="pais"> <option value="${pais.id}">${pais.descricao}</option> </c:forEach> </select>

gostaria de quando n tivesse nenhum pais selecionado minha controller recebesse um estado com a propriedade pais null, e não como é hoje que vem um estado com a propriedade pais e os atributos do pais null.
Porque desta forma o hibernate acusa que estou tentando salvar um objeto que contem objetos não salvo nele =/

caso esteja usando JSF vc pode escrever um converter

pior que não uso alguma outra solução?

se isso é VRaptor, o problema é que esse select vai mandar o parâmetro:

estado.pais.id=

e, mesmo que o id seja branco, ele precisa criar o país pra setar o id…

vc pode tratar isso no seu controller:

if (estado.getPais().getId() == null)
    estado.setPais(null);

faz sentido pra vc salvar um estado sem país?

[quote=Lucas Cavalcanti]se isso é VRaptor, o problema é que esse select vai mandar o parâmetro:

estado.pais.id=

e, mesmo que o id seja branco, ele precisa criar o país pra setar o id…

vc pode tratar isso no seu controller:

if (estado.getPais().getId() == null)
    estado.setPais(null);

faz sentido pra vc salvar um estado sem país?[/quote]

este foi só um exmplo que dei… que neste caso n faz sentido (grava estado sem pais)… mas ta surgindo variaas telas com combos desse tipo e minhas controller tao se enchendo destes if semelhante ao que você pos… achei que tinha algum modo mais pratico/limpo de se fazer.

vc pode fazer um javascript bobo (com o jQuery)

$('form').submit(function() {
    $(this).find('select').each(function(){
        if ($(this).val() == "") $(this).disable();
    });
    return true;
});

assim, qdo vc submeter o form, ele vai pegar todos os selects com value="" e desabilitar… assim o parametro não vai pra requisição e o VRaptor não vai criar os objetos a toa