Posteriormente a consultar expertos en el tema, programadores de varias ramas y maestros dimos con la respuesta al dilema y la plasmamos en esta publicación.
Solución:
Dependiendo del caso, uno podría usar consultas secundarias, algo como:
select e
from Entity e
where e.id in
(
select e.id
from Entity2 e2
join e2.entity e
where e2.someProperty = 'value'
)
or e.id in
(
select e.id
from Entity3 e3
join e3.entity e
where e3.someProperty = 'value2'
)
SQL admite UNION, pero JPA 2.0 JPQL no. La mayoría de las uniones se pueden realizar en términos de uniones, pero algunas no y otras son más difíciles de expresar mediante uniones.
EclipseLink es compatible con UNION.
Una cosa me viene a la mente (buscando exactamente el mismo problema):
Realice dos consultas JPA diferentes en el mismo mapeo de entidades y simplemente agregue los objetos del segundo resultado a la lista (o configure para evitar duplicados) del primer resultado.
De esa manera obtienes el mismo efecto que con UNION, la diferencia es que usas dos declaraciones SQL en lugar de una. Pero en realidad, espero que funcione tan bien como emitir una declaración UNION.
Reseñas y calificaciones
Nos puedes proteger nuestra faena fijando un comentario o valorándolo te lo agradecemos.