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 № 1Suponho 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)