So wählen Sie ein, wenn eine Zeile vorhanden, in HQL
EDIT: Speziell reden über die Abfrage auf keine Tabelle. Ja ich kann mich existiert, aber ich würde tun müssen,
select case when exists (blah) then 1 else 0 end as conditionTrue
from ARealTableReturningMultipleRows
In T-SQL kann ich tun:
select case when exists(blah) then 1 else 0 end as conditionTrue
In Oracle kann ich tun:
select case when exists(blah) then 1 else 0 end as conditionTrue from DUAL
Wie kann ich erreichen, die gleiche Sache in HQL?
select count() scheint, wie die second-best-alternative, aber ich will nicht zu haben, Sie zu verarbeiten jede Zeile in der Tabelle, wenn ich nicht muss.
- werfen Sie einen Blick auf diese Frage: stackoverflow.com/questions/3672444/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kurze Antwort: ich glaube, es ist NICHT möglich.
Meine überlegung:
Laut Wo finde ich eine Liste aller HQL-keywords? Hibernate-Projekt nicht veröffentlichen HQL Grammatik auf Ihrer website, die gibt es auch in der Hibernate-full-distribution als
.g
ANTLR-Datei obwohl.Ich habe nicht viel Erfahrung mit
.g
Dateien von ANTLR, aber Sie finden diese in der Datei (hibernate-distribution-3.6.1.Final/project/core/src/main/antlr/hql.g
):welche deutlich es gibt einige HQL-Abfragen ohne
FROM
- Klausel, aber das ist akzeptabel, wenn das eine filter-Abfrage. Jetzt nochmal, ich bin kein Experte in HQL/Hibernate, aber ich glaube, eine filterabfrage ist nicht eine vollständige Abfrage, sondern etwas, das Sie definieren mitsession.createFilter
(siehe Wie schalte ich die Artikel bestellen HQL in einen filter-query?), also das macht mich denke, es gibt keine Möglichkeit auslassen, dieFROM
- Klausel.Ich verwende fake-Tabelle mit einer Zeile zum Beispiel MyDual.
Laut http://docs.jboss.org/hibernate/core/3.3/reference/en/html/queryhql.html#queryhql-expressions es sieht aus wie Sie unterstützen sowohl die Fall und existiert Aussagen.