PostgreSQL 联合查询在 JPA 中不起作用

PostgreSQL Union query not working in JPA

以下 PostgreSQL 查询在 pgAdmin 中工作正常。

(select * from posts where id = 1) union (select * from posts);

但是当用 Spring Data JPA 编写时它不起作用。

   @Query(value = "(select * from posts where id = 1) union (select * from posts)",
            nativeQuery = true)
    Page<Post> getPosts(Pageable pageable);

它给出了一个例外

Caused by: org.postgresql.util.PSQLException: ERROR: syntax error at or near "where"
  Position: 15

我想要两个 select 语句的联合,但联合查询在 JPA 中不起作用。

怎么样

select
  *
from (
  (select * from posts where id = 1)
  union
  (select * from posts)
) as subquery

作为您的查询?这是一个查询,框架可以在其中附加其 WHERE 子句而不会出现语法错误。