Oi pessoal,
tenho uma classe Pessoa que tem 3 tipos de Endereços:@Entity
@Table(name="pessoa")
public class Pessoa implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="PESSOA_ID")
private Long id;
/**
* ENDEREÇOS
*/
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name="end_res_id")
private EnderecoContato enderecoResidencial = new EnderecoContato();
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name="end_com_id")
private EnderecoContato enderecoComercial = new EnderecoContato();
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name="end_cob_id")
private EnderecoContato enderecoCobranca = new EnderecoContato();
...
}
public class PessoaFisicaFace {
private Pessoa pessoa = new Pessoa();
public String save(){
Session session = HibernateUtil.currentSession();
PessoaDAO dao = new PessoaDAO(session);
pessoa.setTipoPessoa('F');
dao.inserePessoa(this.pessoa);
this.pessoa = new Pessoa();
this.clean();
return "toCadastraFisica";
}
...
}
public class PessoaFisicaDAO {
private Session session;
private Logger logger = Logger.getLogger(PessoaFisicaDAO.class);
public PessoaFisicaDAO(Session session) {
logger.info("Construtor" + session);
this.session = session;
}
/**
* @verifica salva novos dados no sistema
*/
public void inserePessoa(Pessoa pessoa) {
session.saveOrUpdate(pessoa);
}
O correto seria tirar os new EnderecoContato(); e setar os endereços em outro lugar, mas onde?
Alguém pode ajudar?