2009-02-12 11 views
14

Ho postato un question alcuni giorni fa su Query sulle raccolte con l'API Criteria e dopo tutte le risposte vedo che la cosa che sto cercando non è possibile con i Criteri, c'è un bug per la situazione in Nibernato e anche in ibernazioneEsiste un modo semplice per convertire i criteri in HQL?

Stavo usando DetachedCriteria per ottenere tutti i criteri insieme e l'elenco è davvero lungo. L'ultimo cerchio della catena è buggato, quindi ho bisogno di cambiare tutta la mia distinzione in HQL.

Quindi la mia domanda è: c'è uno strumento o un modo per convertire i criteri in HQL.

o

C'è un modo per ottenere criteri e HQL lavorare insieme?

An Article about the bug in nhibernate

Grazie è anticipo

risposta

3

ho inviato una mail a Ayende Rahien in merito alla questione e grazie a lui per replying.He ha detto che

la risposta è che non esiste uno strumento di questo tipo, ma la conversione di solito è piuttosto semplice.

+3

Risposta eccellente. Un esempio sarebbe carino ... – mark

-1

Quale versione di NHibernate stai usando? Penso che usare l'ultima versione potrebbe risolvere il tuo problema dato che la 2.0 GA ha un sacco di cambiamenti.

+0

Sto usando 2.0.1 GA, è l'ultima che indovina –

3

ripubblicazione dal forum Hibernate ... non so se è rilevante per NHibernate o aggiornate


da: max Hibernate squadra

Posted: Sun 24 dicembre 2006 7:12

è un folclore molto ostinato che cr iteria si traduce in HQL. I criteri passano direttamente a SQL, ma non esiste alcuna API pubblica diretta per farlo a livello di programmazione.

...

traducendo due volte non è molto efficiente;)

http://forum.hibernate.org/viewtopic.php?t=968990&view=next&sid=50454aa6cec8d482198117fbd398ca70

0

Ho modificato l'API di Hibernate Criteria per generare query JPQL cercando di preservare l'interfaccia per lo più simile. Nome del mio progetto è Criteria2JPQL a:

https://sourceforge.net/projects/criteria2jpql/

Dal momento che questa traduzione è una semplice operazione in memoria che genera una query JPQL standard, non v'è un notevole problema di prestazioni. D'altra parte, l'idea di questo progetto è stata originata dalle query sql native di Hibernate Critera con scarsa performance, inclusi molti join non necessari. Abbiamo sperimentato l'utilizzo di Criteria2JPQL nel nostro progetto presso la mia azienda e abbiamo osservato la scomparsa di questi inutili join.