SóProvas


ID
106180
Banca
FCC
Órgão
PGE-RJ
Ano
2009
Provas
Disciplina
Programação
Assuntos

Usando Hibernate, o mapeamento de uma relação de herança pode ser feito usando uma tabela por

Alternativas
Comentários
  •  O Hibernate suporta três estratégias de mapeamento de herança

     

    • Uma tabela por hierarquia de classes
    • Uma tabela por subclasse
    • Uma tabela por classe concreta (polimorfismo implicito)
    • Não é possível misturar as estratégias para um mesmo mapeamento de classe

     

    http://www.dsc.ufcg.edu.br/~jacques/cursos/daca/html/hibernate/hibernate.

    =
    = Comentários Adicionais (07/11/2011) ==

    Hierarquia de Classes.




    Classe Concreta

    Uma tabela por Subclasse
  • Questão correta, pois realmente existem 3 formas de mapear herança com o Hibernate:
    1) Uma tabela por classe concreta 
     - Dados não normalizados 

     - Depende de um UNION para consultas na superclasse.  

    -  Ideal para hierarquias horizontais  

    2)Uma única tabela para toda hierarquia de classes

     - Utiliza discriminator para diferenciar elementos da hierarquia.

     - Queries são feitas em uma única tabela, que pode se tornar bastante grande. 

     - Modelo mais simples. Modelo default. Ideal para hierarquias com poucas classes.  

    3)Uma tabela por classe da hierarquia 

    - Permite associações e consultas polimórficas  

    - Dados normalizados. Sempre realiza join.  

    - Usado em hierarquias de muitos níveis (verticais).

    Bons estudos!

  • Mesmo acertando, ainda achei a questão um pouco confusa se olhar ao "pé da letra" ou possíveis ambiguidades.

    A questão ainda está levemente mal descrita.

    Pois classes concretas podem ser apenas subclasses de uma classe abstrata.

    Quando ele fala subclasses, chegamos a uma mesma conclusão da afirmativa feita acima, dando exatamente na mesma coisa.

    Hierarquia, não tem nem o que falar.

    Creio que a descrição abaixo seria mais adequada.

    Tabela única para todas as classes (single table)

    Uma tabela para cada classe da hierarquia (joined)

    Uma tabela para cada classe concreta (table per class)