Olá!
Tenho uma classe Pessoa definida da seguinte forma:
@Entity
public class Pessoa {
@Id
@SequenceGenerator(name="pessoa_sequence", sequenceName="PESSOA_SEQ", allocationSize=1)
@GeneratedValue(strategy=GenerationType.AUTO, generator="pessoa_sequence")
private long id;
...
}
E duas classes que utilizam essa classe Pessoa por composição:
@Entity
public class Cliente {
@Id
private long id;
@OneToOne(cascade=CascadeType.ALL)
@PrimaryKeyJoinColumn
private Pessoa pessoa;
...
}
e
@Entity
public class Funcionario {
@Id
private long id;
@OneToOne(cascade=CascadeType.ALL)
@PrimaryKeyJoinColumn
private Pessoa pessoa;
...
}
Porém se eu criar 2 objetos do tipo Cliente e 1 do tipo Funcionario, vou ter problemas com duplicidade de chaves!
Na verdade eu queria que o a primary key da classe Pessoa fosse tanto a primary key como a foreign key para as classes Funcionario e Cliente!
Isso é possível?
Abraços.