Prezados,
Há algum tempo eu venho tendo este problema, mas tenho tratado isto manualmente e pontualmente.
Quando uso um select no formuário que aponta para um id de um model relacionado, sendo este objeto opcional, ao submit se o select for nulo (não selecionado), no VRaptor chega um objeto que não é nulo, mas com as propriedades nulas.
Ocorre que ao salvar o hibernate reclama de objeto não transiente nulo, quando uso cascade pra merge.
Eu resolvo este problema verificando:
//significa que o objeto é nulo e não deveria ser serializado
if(objeto.getSubObjeto() != null && objeto.getSubObjeto().getId() == null) {
objeto.setSubObjeto(null);
}
Isto resolve o problema, mas é chato ter que ficar fazendo na mão.
O problema acontece em outros casos também, sendo sempre o objeto não nulo com todas as propriedades nulas.
A pergunta é: tem como fazer com que o VRaptor identifique que este objeto deveria ser nulo e não deserializasse o mesmo?