/ / Hibernate Herança problema - hibernação

Problema de Herança do Hibernate - hibernate

Estou usando o Hibernate 3.0. Estou enfrentando um problema ao usar a subclasse ingressada.

Aqui está um pequeno exemplo

Eu tenho uma super classe Animal, e eu tenho 2 sub classes Dog e Cat. Estou brincando com a subclasse ingressada para definir esse relacionamento.

quando eu faço

Query query=session.createQuery("from Animal");

está buscando objetos de animais, cães e gatos.

Isso está criando problemas, pois o tempo de busca é maior.

Qualquer solução para o mesmo.

Respostas:

0 para resposta № 1

Suponho que você queira apenas as instâncias Animal, não suas subclasses?

Isso é um pouco complicado de fazer na JPA, como os gatos também são animais e, portanto, são devolvidos.

Você deve excluí-los manualmente da consulta, assim:

from Animal a
where a.id not in (select c.id from Cat c)
and a.id not in (select d.id from Dog d)

(Como você tem esse problema, talvez o polimorfismo não seja a solução perfeita nesse caso.)


0 para resposta № 2

Você pode desativar o polimorfismo implícito para esta classe configurando polymorphism="explicit" no mapeamento xml ou use a anotação de hibernação @Entity(polymorphism=PolymorphismType.EXPLICIT)