Pessoal boa tarde, a minha dúvida é: tenho uma classe Empresa, Pessoa e Funcionario. A chave primária de Pessoa é composta (Empresa, Id) até ai blz, o problema está sendo em criar a chave composta de Funcionario que tem que ser (Empresa, Id) só que esse Id tem quer ser uma Fk de Pessoa.
Classe Empresa
@Entity
public class Empresa {
@Id @GeneratedValue
private Integer empresa;
set/get
}
Classe Pessoa
@Entity
public class Pessoa implements Serializable{
@EmbeddedId
private PessoaId pessoaId;
set/get
}
Classe PessoaId que é a chave composta de Pessoa
@Embeddable
public class PessoaId implements Serializable{
@ManyToOne
@JoinColumn(name="empresa")
@ForeignKey(name="empresa_fk")
private Empresa empresa;
private Integer pessoa;
set/get
}
Eu preciso que a chave de Funcionário seja a mesma de Pessoa, tipo:
---------pessoa-------------
emp pessoa Nome
1 1 João
1 2 Teste
-----------Funcionario--------------
emp Pessoa Cargo
1 1 Analista
1 2 Programador
@Embeddable
public class FuncionarioId implements Serializable{
@ManyToOne
@JoinColumn(name="empresa")
@ForeignKey(name="empresa_fk")
private Empresa empresa;
//Como que ficaria a anotação do Id do Funcionario ligado ao Id de pessoa?
}