Estou com uma duvida em como fazer update em cascata com hibernate, quando se tem um relacionamento one to one…
Tenho a seguinte classe…
public class AdversoVO {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column (name="cd_adverso")
private Integer cd_adverso;
@Column(name="observacoes", nullable=false, length=280)
private String observacoes;
@OneToOne(cascade = CascadeType.ALL)
private PessoaVO pessoa;
e tenho a classe PessoaVO, que não tem nenhum campo que referencia a classe AdversoVO…pois está unidirecional…
@Entity
@Table(name="pessoa")
public class PessoaVO {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column (name="cd_pessoa")
private Integer cd_pessoa;
@Column(name="nome", nullable=false, length=50)
private String nome;
@Column(name="fone_resid", nullable=false, length=50)
private String fone_resid;
@Column(name="fone_comercial", nullable=false, length=50)
private String fone_comercial;
Quando vou fazer o update, eu pego os valores dos campos, inclusive o cód do Adverso…
Mas quando dou o update, ele dá update em AdversoVO, mas insere outro cadastro para pessoaVO
public void alterar() throws AlterarException, IllegalArgumentException, ParseException, InserirException{
montarModel();//<--Aqui pego os dados do campo
adversoVO.setPessoa(pessoaVO);
pessoaVO.setEndereco(enderecoVO);
dao.alterar(adversoVO);
}
Eu ateh sei qual é o problema, pois qdo faço um pessoaVO.setCod(1)…ele faz o update, mas como vou pegar o valor verdadeiro do código?
Obrigado ae galera!!