Implementieren der Gruppierung nach Kriterienobjekt im Ruhezustand
Im Ruhezustand können Sie mit der Kriterien-API komplexe Abfragen erstellen und mithilfe von Objekten Daten aus der Datenbank abrufen -orientierte Kriterien. Um eine SQL-Abfrage mithilfe der Criteria-API zu implementieren, müssen Sie die Methode createCriteria() in der Hibernate-Sitzung verwenden.
Für eine SQL-Abfrage wie:
SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name <operator> value GROUP BY column_name
Sie können die groupProperty verwenden ()-Methode der CriteriaQuery-Klasse, um die Ergebnisse nach der angegebenen Spalte zu gruppieren. Sie können auch die von der Projections-Klasse bereitgestellten Aggregatfunktionen verwenden, um die gewünschten Aggregatoperationen auszuführen.
Hier ist ein Beispiel dafür, wie Sie diese Abfrage mithilfe von Hibernate Criteria implementieren können:
CriteriaQuery<Tuple> criteriaQuery = session.getCriteriaBuilder().createTupleQuery(); Root<SomeTable> root = criteriaQuery.from(SomeTable.class); criteriaQuery.multiselect( root.get("column_name"), Projections.max(root.<Double>get("column_name")), Projections.min(root.<Double>get("column_name")), Projections.count(root.get("column_name")) ); criteriaQuery.where( session.getCriteriaBuilder().ge(root.<Double>get("column_name"), value) ); criteriaQuery.groupBy(root.get("column_name")); List<Tuple> result = session.createQuery(criteriaQuery).getResultList();
Dies Die Kriterienabfrage gibt eine Liste von Tupeln zurück, die den Spaltennamen, seinen Maximalwert, seinen Minimalwert und die Anzahl enthalten, gruppiert nach dem Spaltennamen. Beachten Sie, dass der Typ der Aggregatfunktion vom Typ der Spalte abhängt, in der Sie aggregieren.
Das obige ist der detaillierte Inhalt vonWie implementiert man die GROUP BY-Klausel im Ruhezustand mithilfe der Kriterien-API?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!