Boa noite
Alguém sabe como configurar uma chave composta e também usar uma associação na mesma classe, onde esta associação é referente a chave composta.
- Tenho uma tabela no banco chamada pessoas, a sua PK é i_pessoas.
- Tenho uma tabela no banco chamada enderecos, a sua PK é i_pessoas e i_enderecos (Chave composta) onde i_pessoas é FK da tabela pessoas.
Desenvolvi as classes abaixo que funcionam perfeitamente para inserção dos dados (persist(…)), porém quando vou excluir ou atualizar uma Pessoa, o endereco desta pessoa também é altarado nos outros enderecos que possuem o mesmo código, porém são de outra pessoa.
Segue as classes
[code]@Entity
@Table(name="PESSOAS")
public class Pessoas implements ValueObject{
private static final long serialVersionUID = -3340865594971735825L;
@Id
@Column(name="I_PESSOAS")
private Integer iPessoas;
@Column(name="NOME")
private String nome;
@Column(name="SOBRENOME")
private String sobrenome;
@Column(name="IDADE")
private Integer idade;
//pessoas -->> é o nome do atributo declarado na classe Pessoas
//Uma Pessoas para muitos Enderecos
@OneToMany(cascade=CascadeType.ALL, mappedBy="pessoas")
private List<Endereco> enderecoList;
//-- construtores
//-- gets e sets
}
[/code]
@Entity
@Table(name="ENDERECO")
//@IdClass(value=EnderecoPK.class)
public class Endereco implements ValueObject{
private static final long serialVersionUID = 5711153617397182795L;
@Id
@Column(name="I_ENDERECOS")
private Integer iEnderecos;
@Column(name="DESCRICAO")
private String descricao;
//Mapeado uma lista de endereços na classe Pessoas
//Muitos enderecos para uma Pessoa
@Id
@ManyToOne
@JoinColumn(name="I_PESSOAS",referencedColumnName="I_PESSOAS")
private Pessoas pessoas;
//-- construtores
//-- gets e sets
}
Alguém sabe como eu vou configurar na classe endereco a chave composta, sendo que se eu usar @IdClass… dá pau
Obrigado a todos