Olá pessoal!
Estou fazendo um projeto, utilizando como BD o PostgreSQL e JPA.
Eu tenho: Classe mãe:Pessoa Classes filhas:Funcionário e Paciente
Andei estudando como tratar esse tipo de herança no BD utilizando JPA, e pelo que encontrei sobre Herança de Entidades há 3 tipos: Single Table: Todas as classes na hierarquia são mapeadas para uma tabela única (Um valor em um campo identifica a subclasse específica); Table per class: Cada classe na hierarquia é mapeada para uma tabela separada (Todas as propriedades das classes são mapeadas para colunas desta tabela incluindo as propriedades herdadas); Joined subclass: A raiz da hierarquia é representada por uma tabela e cada subclasse é representada por uma tabela separada que contém campos específicos para a subclasse e também as colunas que representam as suas chaves primárias.
Gostaria de saber: 1. Qual é a melhor forma de fazer? (mesmo sendo a mais difícil)
2. Qual é a forma mais fácil, mas que não deixa de ser correta?
Hum… Pelo que vc escreveu, fiquei na dúvida se eu entendi bem o conceito de Joined subclass. Deixa eu ver se entendi…
Eu teria no BD:
1 tabela pessoa
1 tabela paciente
1 tabela funcionário
Nas tabelas paciente e funcionário eu teria uma chave estrangeira da tabela Pessoa (do campo codigoPessoa, por ex).
Correto??
Obrigada[/quote]
Isto ai, vc entendeu corretamente, pq assim se vc precisar cadastrar um funcionário como paciente, vc não precisará duplicar dados… já estará tudo na tabela pessoa, só criar o registro na tabela de paciente, com a chave estrangeira de pessoa.