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.