Odpowiednik JPQL zapytania SQL z użyciem związków i wybierania stałych

Napisałem zapytanie SQL, które zasadniczo wybiera z wielu tabel, aby określić, które z nich mają wiersze utworzone od określonej daty. Mój SQL wygląda mniej więcej tak:

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

To działa dobrze w SQL, ale ostatnio to odkryłem, podczas gdy JPA może używać związków do wykonywania kwerend polimorficznych „tabela na klasę”,JPQL nie obsługuje związków w zapytaniach. Zastanawiam się więc, czy JPA ma alternatywę, której mógłbym użyć, aby osiągnąć to samo.

W rzeczywistości chciałbym zapytać o kilkanaście tabel, nie tylko o dwa, więc chciałbym uniknąć wykonywania oddzielnych zapytań. Chciałbym również uniknąć wykonywania rodzimego zapytania SQL ze względu na przenośność.

W pytaniu, które powiązałem z powyższym, zapytano, czy elementy odwzorowujące widget_a i widget_b są częścią tego samego drzewa dziedziczenia. Tak, oni są. Jednakże, jeśli wybrałem z ich klasy bazowej, nie wierzę, że mógłbym określić różne stałe łańcuchowe dla różnych podrzędnych jednostek, czyż nie? Gdybym mógł wybrać nazwę klasy podmiotu zamiast łańcucha, który podaję, może to również służyć mojemu celowi. Ale nie wiem, czy to możliwe. Myśli?

questionAnswers(2)

yourAnswerToTheQuestion