JPQL-äquivalent von SQL-Abfragen mit unions und Konstanten auswählen

Ich geschrieben habe eine SQL-Abfrage, die im Grunde wählt aus einer Anzahl von Tabellen, um zu bestimmen, welche Zeilen, die erstellt wurden, seit einem bestimmten Datum. Mein SQL sieht ungefähr so aus:

SELECT widget_type FROM(
  SELECT 'A' as widget_type
  FROM widget_a
  WHERE creation_timestamp > :cutoff
  UNION
  SELECT 'B' as widget_type
  FROM widget_b
  WHERE creation_timestamp > :cutoff
) types
GROUP BY widget_type
HAVING count(*)>0

Die gut funktioniert in SQL, aber vor kurzem fand ich, dass, während die JPA verwenden dürfen Gewerkschaften zu führen "Tabelle pro Klasse" polymorphe Abfragen, JPQL unterstützt nicht die Gewerkschaften in Abfragen. Damit lässt mich Fragen, ob der PPV hat eine alternative, die ich verwenden könnte, um das gleiche erreichen.

In der Realität, ich wäre Abfragen gegen ein Dutzend Tische, die nicht nur zwei, so möchte ich es vermeiden, separate Abfragen. Ich möchte auch vermeiden, eine native SQL-Abfrage für die Portabilität Gründen.

In der Frage, die ich im Zusammenhang mit oben, es wurde gefragt, ob die Entitäten, die Karte zu widget_a und widget_b sind Teil der gleichen vererbungsbaums. Ja, das sind Sie. Wenn ich allerdings die gewählten von Ihrer Basis-Klasse, ich glaube nicht, würde ich eine Weise haben, durch unterschiedliche string-Konstanten für die verschiedenen untergeordneten Entitäten, würde ich? Wenn ich konnte wählen Sie ein Element aus der Klasse von Namen anstelle eines Strings, die ich mag dienen meinem Zweck zu. Aber ich weiß nicht, ob das möglich ist. Gedanken?

Es sieht aus wie Sie wollen, zu re-implementieren, etwas, das bereits verfügbar out-of-the-box in der PPV: - Vererbung?
Eigentlich mache ich die Vererbung verwenden, wenn ich will, die Abfrage der Objekte selbst. Und es funktioniert Super. Aber wie die Frage sagt, was ich tun möchte, hier ist die Abfrage für die entity-TYPEN verwendet wurden (erstellt), vor kurzem nicht die Abfrage der Entitäten selbst. Wenn Sie eine Möglichkeit haben, dies zu tun, ich würde lieben, zu wissen,

InformationsquelleAutor spaaarky21 | 2013-02-26

Schreibe einen Kommentar