WIE man HAVING COUNT (*) mit Hibernate benutzt

9

Ich muss eine Abfrage erstellen und brauche COUNT(*) und HAVING COUNT(*) = x .

Ich verwende eine Arbeit, die die CustomProjection -Klasse verwendet, die ich irgendwo heruntergeladen habe.

Dies ist die SQL, die ich versuche zu erreichen:

%Vor%

Dies ist der Code, in dem ich die Projection Hibernate-Klasse verwende:

%Vor%

Der Fehler ist:

%Vor%

Wenn ich die Zeile mit CustomProjections class kommentiere, funktioniert die Abfrage, aber ich bekomme nicht den HAVING COUNT(*) Filter in SQL ...

Grundsätzlich versucht die Abfrage, in einem Master-Detail-Schema alle Stammdatensätze abzurufen, in denen gleichzeitig eine Liste von Details vorhanden ist, etwa wenn Sie wissen möchten, "welche Rechnungen beide Produkte A und B haben". p>

Deshalb, wenn ich 3 Elemente in der IN -Klausel habe, muss ich HAVING COUNT = 3 -Klausel verwenden.

Irgendwelche Ideen oder Vorschläge? Mit freundlichen Grüßen,

    
Nicolas400 22.12.2011, 15:02
quelle

4 Antworten

10

Ich habe das Problem herausgefunden. Ich ersetze CusotmProjections-Klasse mit:

%Vor%

where groupBy, Alias ​​und Typen sind:

%Vor%

und die Magie ist auf groupby String. -

    
Nicolas400 28.12.2011, 16:28
quelle
2

Hier ist mein Beispiel, es funktioniert gut, vielleicht nützlich:

Meine SQL-Abfrage:

  

Wählen Sie COLUMN1, sum (COLUMN2) aus MY_TABLE group by aus   SPALTE1 mit der Summe (SPALTE2) & gt; 1000;

Und Kriterien wären:

%Vor%     
Pasha Gharibi 17.05.2017 11:28
quelle
1

Wenn jemand es in Grails machen muss, wäre es wie folgt:

%Vor%

Wo sqlGroupProjection seit 2.2.0 verfügbar ist

%Vor%

Ссылка

    
Milev 30.10.2014 10:14
quelle
0

criteria.add (Restrictions.sqlRestriction ("1 = 1 mit Anzahl (*) = 2"));

    
Ickhyun Kwon 02.12.2015 06:56
quelle

Tags und Links