2009-02-12 6 views
14

Ich habe eine question vor ein paar Tagen über Abfrage auf Sammlungen mit der Kriterien API und nach all den Antworten sehe ich, dass die Sache, die ich versuche, ist nicht möglich mit den Kriterien, gibt es einen Fehler für die Situation in Nhibernate und auch im WinterschlafGibt es eine einfache Möglichkeit, Kriterien in HQL zu konvertieren?

Ich benutzte DetachedCriteria, um alle Kriterien zusammen zu bekommen, und die Liste ist wirklich lang. Der letzte Kreis der Kette ist Buggy-Kriterien, also muss ich alle meine detachedcriteria zu HQL ändern.

Also meine Frage ist, gibt es ein Werkzeug oder eine Möglichkeit, Kriterien in HQL zu konvertieren.

oder

Gibt es eine Möglichkeit Kriterien zu bekommen und HQL zusammenarbeiten?

An Article about the bug in nhibernate

Dank ist vorab

Antwort

3

Ich habe eine E-Mail an Ayende Rahien über das Thema und danken für replying.He zu ihm geschickt sagte, dass

die Antwort ist, dass es kein solches Werkzeug gibt, aber die Konvertierung ist in der Regel ziemlich einfach.

+3

Ausgezeichnete Antwort. Ein Beispiel wäre schön ... – mark

-1

Welche Version von nHibernate verwenden Sie? Ich denke, dass die Verwendung der neuesten Version Ihr Problem lösen könnte, da der 2.0 GA viele einschneidende Änderungen aufweist.

+0

Ich verwende 2.0.1 GA, es ist die neueste ich denke, –

3

von den Hibernate-Foren reposting ... nicht sicher, ob es zu nhibernate relevant ist oder auf dem neuesten Stand


aus: max Hibernate-Team

Verfasst am: Dec 24, 2006 7:12 am

ist es eine sehr störrische Folklore, dass cr Iteria übersetzt in HQL. Kriterien gehen direkt zu SQL, aber es gibt keine direkte öffentliche API, um es programmatisch zu bekommen.

...

übersetzen zweimal nicht sehr effizient ist;)

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

0

Ich habe die Hibernate Criteria API geändert, um JPQL-Abfragen zu generieren, indem ich versuche, die Schnittstelle weitgehend ähnlich zu erhalten. Name meines Projektes ist Criteria2JPQL an:

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

Da diese Übersetzung ein einfacher In-Memory ist der Betrieb, die eine Standard JPQL Abfrage generiert, gibt es nicht ein erhebliches Performance-Problem. Auf der anderen Seite ist die Idee dieses Projekts von den schlecht ausgeführten nativen SQL-Abfragen von Hibernate Critera entstanden, einschließlich vieler unnötiger Joins. Wir haben die Verwendung von Criteria2JPQL in unserem Projekt in meiner Firma erlebt und festgestellt, dass diese unnötigen Verknüpfungen verschwunden sind.