Galera, estou com a seguinte duvida!
Tenho a situação abaixo:
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@Table(name="tb_pessoa")
public abstract class Pessoa implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name="id_pessoa")
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String telefone;
private String celular;
private String email;
@Embedded
private Endereco endereco;
private Boolean ativo;
// getters e setters
}
@Entity
@PrimaryKeyJoinColumn(name="id_pessoa_fisica", referencedColumnName="id_pessoa")
@Table(name="tb_pessoa_fisica")
public class PessoaFisica extends Pessoa implements Serializable {
private static final long serialVersionUID = 1L;
private String nome;
private String sobrenome;
@Temporal(TemporalType.DATE)
private Date nascimento;
private String cpf;
private String rg;
@Enumerated(EnumType.STRING)
private Sexo sexo;
// getters e setters
}
@Entity
@PrimaryKeyJoinColumn(name="id_pessoa_juridica", referencedColumnName="id_pessoa")
@Table(name="tb_pessoa_juridica")
public class PessoaJuridica extends Pessoa implements Serializable {
private static final long serialVersionUID = 1L;
@Column(name="razao_social")
private String razaoSocial;
@Column(name="nome_fantasia")
private String nomeFantasia;
private String cnpj;
private String contato;
@Column(name="ramo_de_atividade")
private String ramoDeAtividade;
@Enumerated
private Definicao definicao;
// getters e setters
}
Até aí beleza, agora tenho uma entidade Venda que pode ser feita tanto para uma PF como para uma PJ, então:
1)- Como devo persistir isso em minha entidade Venda?
2)- Preciso criar uma entidade Funcionario, eu consigo extender diretamente de PessoaFisica? como notar isso?
Valeu!