Sto usando Hibernate 3.1.1, in particolare, sto usando query HQL.Come eseguire una query non polimorfica HQL in Hibernate?
Secondo il documentation, le query di Hibernate sono polimorfici:
una query come:
from Cat as cat
restituisce le istanze non solo diCat
, ma anche delle sottoclassi comeDomesticCat
.
Come posso eseguire una query per le istanze di Cat, ma non di alcuna delle sue sottoclassi?
mi piacerebbe essere in grado di farlo senza dover menzionare in modo esplicito ogni sottoclasse.
Sono consapevole delle seguenti opzioni, e non li trovo soddisfacente:
- filtrare manualmente le istanze dopo che la query, OR:
- l'aggiunta manuale di una clausola WHERE sulla colonna discriminatore.
Avrebbe senso per Hibernate per consentire all'utente di decidere se una query dovrebbe essere polimorfico o no, ma non riesco a trovare una tale opzione.
Grazie in anticipo!
+1 buona scoperta ... – skaffman
Fantastico! Nel mio caso, ho bisogno che sia su base per-query, e non per entità, ma penso di vedere un modo per farlo - sovrascrivendo il metodo 'isExplicitPolymorphism' sul mio' EntityPersister'. Sicuramente mi hai dato una spinta nella giusta direzione. –