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.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage