JPA - Herança de tabela - postgre

3 respostas
shinoob

o postgre tem um recurso fantastico que é a possibilidade de fazer herança entre tabelas
no JPA , pelo q eu vi, tem como fazer herança entre classes, e salvar tudo isso em uma unica tabela
existe algum mapeamento para fazer em JPA = no postgre? pra q ele gere as tabelas com herança?

3 Respostas

lucasmurata

Existem 3 formas de voce desenhar suas classes para mapear henraça, no caso nao se restringe a Postgres, mas pode usar qualquer banco.

A annotation é:

@Inheritance

Aí voce pode definir qual strategy da henraça:

  • Uma tabela por classe
  • Única tabela por hierarquia
  • Joined, que cria uma tabela por classe, porem sem repetir coluna, usando FK.
@Inheritance(strategy =InheritanceType.TABLE_PER_CLASS)  
@Inheritance(strategy =InheritanceType.SINGLE_TABLE)  
@Inheritance(strategy =InheritanceType.JOINED)
rmendes08

shinoob:
o postgre tem um recurso fantastico que é a possibilidade de fazer herança entre tabelas
no JPA , pelo q eu vi, tem como fazer herança entre classes, e salvar tudo isso em uma unica tabela
existe algum mapeamento para fazer em JPA = no postgre? pra q ele gere as tabelas com herança?

Provavelmente não. O JPA faz mapeamento apenas para recursos que sejam padrão do modelo relacional. Como esse é um recurso do Postgree é bem possível que não exista uma especificação para esse tipo de mapeamento. Por outro lado, nada te impede de criar ou estender sua própria anotação e implementar você mesmo o mapeamento.

T

Usem @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) .

vai funcionar perfeito.

Criado 10 de outubro de 2011
Ultima resposta 23 de ago. de 2013
Respostas 3
Participantes 4