Heim >Datenbank >MySQL-Tutorial >Wie kann ich Spalten aus einer Hibernate-Kriterienabfrage ausschließen?
Hibernate-Kriterienabfrage zur Auswahl bestimmter Spalten
Im Ruhezustand ruft die Kriterienabfrage standardmäßig alle Spalten aus der Datenbank ab. In einigen Fällen möchten Sie jedoch möglicherweise bestimmte Spalten ausschließen, um die Leistung zu verbessern oder bestimmte Anforderungen zu erfüllen.
Verwenden von Projektionen zum Ausschließen von Spalten
Um bestimmte Spalten von a auszuschließen Bei der Kriterienabfrage können Sie die Methode Projections.projectionList() verwenden. Mit dieser Methode können Sie nur die gewünschten Spalten in der Projektion angeben.
Beispiel:
Angenommen, Sie haben eine Abfrage, die alle Spalten aus einer „Benutzer“-Tabelle abruft. Um die Spalte „Alter“ von der Abfrage auszuschließen, können Sie den folgenden Code verwenden:
<code class="java">Criteria cr = session.createCriteria(User.class) .setProjection(Projections.projectionList() .add(Projections.property("id"), "id") .add(Projections.property("name"), "name")) .setResultTransformer(Transformers.aliasToBean(User.class));</code>
Umgang mit Abfragefehlern
Bei der Verwendung von Projektionen können Fehler auftreten wenn Sie auf die ausgeschlossenen Spalten in der where-Klausel oder anderen Teilen der Abfrage verweisen. Um dieses Problem zu beheben, können Sie die den projizierten Spalten zugewiesenen Aliase explizit angeben.
Beispiel:
<code class="java">Criteria cr = session.createCriteria(User.class) .setProjection(Projections.projectionList() .add(Projections.property("id"), "user_id") .add(Projections.property("name"), "user_name")) .setResultTransformer(Transformers.aliasToBean(User.class)) .add(Restrictions.gt("user_id", 10));</code>
In dieser Abfrage sind „id“ und „ „Name“-Spalten werden projiziert und den Aliasnamen „user_id“ bzw. „user_name“ zugewiesen. Die where-Klausel bezieht sich dann auf diese Aliase und vermeidet so Fehler, die durch die Bezugnahme auf die ursprünglichen Spaltennamen auftreten könnten.
Das obige ist der detaillierte Inhalt vonWie kann ich Spalten aus einer Hibernate-Kriterienabfrage ausschließen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!