Heim > Datenbank > MySQL-Tutorial > Wie rufe ich bestimmte Spalten mithilfe der Hibernate-Kriterienabfrage ab?

Wie rufe ich bestimmte Spalten mithilfe der Hibernate-Kriterienabfrage ab?

Barbara Streisand
Freigeben: 2024-10-26 07:00:30
Original
714 Leute haben es durchsucht

How to Retrieve Specific Columns Using Hibernate Criteria Query?

Hibernate-Kriterienabfrage zum Abrufen bestimmter Spalten

In Hibernate bietet die Kriterienabfrage-API eine flexible Möglichkeit, SQL-ähnliche Abfragen zu erstellen. Standardmäßig ruft die generierte Abfrage alle Spalten ab, was zu Leistungsproblemen führen kann, wenn bestimmte Spalten ausgeschlossen werden.

Ausschließen einer einzelnen Spalte

Um eine bestimmte Spalte aus einer Kriterienabfrage auszuschließen, verwenden Sie Projektionen . Mithilfe von Projektionen können Sie die Spalten angeben, die in das Ergebnis einbezogen werden sollen.

<code class="java">CriteriaBuilder cb = session.getCriteriaBuilder();
CriteriaQuery<Object[]> criteriaQuery = cb.createQuery(Object[].class);
Root<Entity> root = criteriaQuery.from(Entity.class);
criteriaQuery.multiselect(root.get("id"), root.get("name"), root.get("description"));
List<Object[]> result = session.createQuery(criteriaQuery).list();</code>
Nach dem Login kopieren

Diese Abfrage ruft nur die Spalten „ID“, „Name“ und „Beschreibung“ ab und lässt andere Spalten aus dem Ergebnis aus.

Umgang mit Aliasfehlern

Bei der Verwendung von Projektionen müssen die Ergebnisaliase mit den in der Projektionsliste angegebenen Eigenschaften übereinstimmen. Andernfalls können Fehler wie „Unbekannter Spalten-Alias ​​in der Where-Klausel“ auftreten.

<code class="java">CriteriaBuilder cb = session.getCriteriaBuilder();
CriteriaQuery<Object[]> criteriaQuery = cb.createQuery(Object[].class);
Root<Entity> root = criteriaQuery.from(Entity.class);
criteriaQuery.multiselect(root.get("id").as("y0"), root.get("name").as("y1"), root.get("description").as("y2"));
List<Object[]> result = session.createQuery(criteriaQuery).list();</code>
Nach dem Login kopieren

In dieser Abfrage stimmen die Aliase („y0“, „y1“, „y2“) mit überein Reihenfolge der Eigenschaften in der Projektionsliste.

HQL-Äquivalent

Das HQL-Äquivalent der Kriterienabfrage mit Projektionen ist:

<code class="hql">SELECT e.id, e.name, e.description
FROM Entity e</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie rufe ich bestimmte Spalten mithilfe der Hibernate-Kriterienabfrage ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage