/ / Problém s dedičným spánkom - dlhodobý spánok

Režim hibernácie v dedičstve - hibernácia

Používam režim dlhodobého spánku 3.0. Pri používaní spojenej podtriedy čelím problému.

Tu je malý príklad

Mám super triedu zvierat a mám 2 podtriedy Pes a mačka. Žartujem do podtriedy pre definovanie tohto vzťahu.

keď áno

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

vyvoláva objekty zvierat, psov a mačiek.

Toto vytvára problémy, pretože čas načítania je viac.

Akékoľvek riešenie pre to isté.

odpovede:

0 pre odpoveď č. 1

Predpokladám, že chcete iba prípady zvierat, nie ich podtriedy?

Je to trochu zložitejšie robiť v JPA, pretože mačky sú tiež zvieratá, a preto sa vracajú.

Musíte ich vylúčiť ručne z dotazu, napríklad:

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)

(Ako máte tento problém, možno polymorfizmus nie je v tomto prípade dokonalým riešením.)


0 pre odpoveď č. 2

Implicitné polymorfizmus pre túto triedu môžete vypnúť nastavením polymorphism="explicit" pri mapovaní xml alebo použite anotáciu hibernácie @Entity(polymorphism=PolymorphismType.EXPLICIT)