JPA führt nur die erste select-Anweisung in union aus?
Ich habe eine JPQL-Anweisung geschrieben, die mehrere select-Anweisungen vereint, von denen jede eine andere String-Konstante auswählt. Eine vereinfachte Version der Abfrage würde ungefähr so aussehen:
SELECT DISTINCT 'A' AS widget_type
FROM WidgetA widgetA
WHERE widgetA.creationTimestamp > :cutoff
UNION SELECT DISTINCT 'B' AS widget_type
FROM WidgetB widgetB
WHERE widgetB.creationTimestamp > :cutoff
Die Abfrage verursacht keine Fehler, aber ich erhalte nicht das erwartete Ergebnis. Ich sehe, dass das generierte SQL keine Gewerkschaften hat - es fragt nur die Tabelle von der ersten Auswahl ab:
select distinct 'A' as col_0_0_
from widget_a widget0_
where widget0_.creation_timestamp>?
Gibt es einen offensichtlichen Grund, warum JPA nach der ersten select-Anweisung alles außer Acht lässt? Wenn es einen Unterschied macht, verwende ich Hibernate 4.1.9 als JPA-Implementierung mit einer MySQL-Datenbank.