Ich versuche, den folgenden Satz mit den Kriterien api in JPA (eclipselink) zu erstellen, Es ist einfach zu fragen, ob in irgendeiner Kategorie ein Benutzer vorhanden ist
Der Satz, den ich will:
%Vor%Ich versuche, diesen Code zu verwenden:
%Vor%Leider ist der Satz, den ich habe, der folgende, ich möchte den letzten "vom Benutzer" löschen:
%Vor%Irgendeine Idee?
Leider unterstützt JPA die Auswahl von Daten ohne Entity (Tabelle) nicht. Nicht einmal Standard-SQL92 unterstützt dies - schauen Sie sich an, wie Sie ohne eine Tabelle in verschiedenen Datenbanken auswählen können: Ссылка
Im SQL92-Standard müssen Sie eine Tabelle in der SELECT-Klausel angeben.
JPA ist auch ein weithin akzeptierter Standard und bietet normalerweise keine nicht-standardmäßigen Features und sogar viele Standard-SQL-Features kommen nur in den neuesten Versionen von JPA vor (zum Beispiel verschachtelte Selects kamen erst kürzlich mit JPA 2.1 in JavaEE 7). p>
Die Lösung besteht also darin, aus einer Entität auszuwählen, die immer mindestens eine Zeile in der Datenbank hat, und die Ergebnisse durch query.setMaxResults (1) auf maximal 1 zu begrenzen. Noch besser ist es, eine Dummy-Entity zu erstellen, die immer 1 Zeile hat und deren Inhalt niemals geändert wird. Dies würde die Leistung der Auswahl erhöhen.
Tags und Links sql java jpa database criteria-api