相关疑难解决方法(0)

JPQL相当于使用联合和选择常量的SQL查询

我编写了一个SQL查询,它基本上从许多表中选择,以确定哪些表具有自特定日期以来创建的行.我的SQL看起来像这样:

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
Run Code Online (Sandbox Code Playgroud)

这在SQL中运行良好但我最近发现,虽然JPA可能使用联合执行"每类表"多态查询,但JPQL不支持查询中的联合.所以这让我想知道JPA是否有一个替代方案可以用来完成同样的事情.

实际上,我会查询十几个表,而不仅仅是两个表,所以我想避免单独查询.我还想避免出于可移植性原因而进行本机SQL查询.

在我上面链接的问题中,有人询问映射到widget_a和widget_b的实体是否是同一继承树的一部分.对,他们是.但是,如果我从他们的基类中选择,我不相信我会为不同的子实体指定不同的字符串常量,我会吗?如果我可以选择实体的类名而不是我提供的字符串,那也可能符合我的目的.但我不知道这是否可能.思考?

jpa jpql

3
推荐指数
1
解决办法
2万
查看次数

标签 统计

jpa ×1

jpql ×1