Pessoal,
Estou iniciando com struts2 acabei empacando nesta situação:
Meus DTO’s:
@Entity
public class Pessoa {
@Id
private Integer idPessoa;
private String nmPessoa;
@ManyToOne(fetch=FetchType.EAGER)
@JoinColumn(name="idBairro")
private Bairro fkBairro;
//gets e sets
}
@Entity
public class Bairro {
@Id
private Integer idBairro;
private String nmBairro;
//gets e sets
}
No meu banco de dados, o campo idBairro da tabela Pessoa é NULL (não é obrigatório).
No meu jsp que crier para editar a pessoa, coloquei um submit:
<s:select name="pessoa.fkBairro.idBairro" list="bairroList" listKey="idBairro" listValue="nmBairro" emptyOption="true"/>
O problema acontece quando vou editar uma pessoa e deixo o campo Bairro em branco, quando mando salvar, o struts 2 ao invés de deixar o campo fkBairro = null, ele deixa-o com uma instancia de Bairro com todas as propriedades nulls. Aí da pau quando o hibernate vai gravar o objeto.
Algém já passou por esse problema ?
Eu poderia na minha action que salva a pessoa, verificar manualmente se pessoa.fkBairro.idBairro == null e então setar o fkBairro para null. Mas o problema é que tenho milhões de entidades neste caso e não seria elegante ter que fazer isso pra todas.
Alguém já passou por esse problema e achou uma solução ?
Obrigado
Robson.