1

最近,我需要在我的项目中使用 JPA。然而,我遇到了一些困难。JPA 似乎比我想象的要难。所以,我在这里发布我的问题,希望有些人可以帮助我。

有两张表操作分析,sql如下:

select op_id from operation where flag = 1 
union
select an_id from analysis where on_type = "processed";

op_id并且an_id是两个列名实际上意味着相同。

谁能帮我写一个 JPA 版本?我对此非常感激。非常感谢。

4

1 回答 1

1

JPQL 不支持联合。

您有四个选择:

  1. 您可以在数据库中创建一个视图来进行联合,然后映射到该视图
  2. 编写一个执行联合的本机 SQL(因为您只需要 ID,这是一个有效的选项)
  3. 如果 ID 不同,您可以运行两个查询,并连接结果列表(如果不不同,您可以使用Sets 过滤重复项)
  4. 如果您使用最新的(至少 >=2.4)EclipseLink 作为 JPA 提供程序,则可以使用UNION

在这里看到这个问题

于 2013-07-06T15:17:43.427 回答