错误“工作postgresql时出现$ 1或附近的语法错误

问题描述 投票:0回答:1

我在查询查询时遇到问题这是我的代码

String sql =
                    " WITH TmpProduct (ProductId) AS" +
                    " (" +
                    "       SELECT product.id" +
                    "       FROM product" +
                    "       WHERE product.id IN :productId" +
                    " )" +
                    " SELECT product.id as productId," +   
                    " FROM TmpProduct.ProductId"       
    Query query = em.createNativeQuery(sql, Tuple.class);
    query.setParameter("productId", productId);
    List<Tuple> resultList = query.getResultList();

我的参数productId是一个Long数组。

运行程序时的结果

syntax error at or near $1

我在postgres上试过,效果很好

WHERE product.id IN (4,3,2,1)

我不明白为什么会这样,因为我的setParameter对于数组是错误的

请帮助我

java sql spring postgresql syntax
1个回答
0
投票

我看到两个主要问题:

  1. 您未引用CTE:SELECT product.id as productId并未从TmpProduct中选择任何内容。您可能是指select TmpProduct.ProductId
  2. select子句的列列表中有一个悬空的昏迷。
© www.soinside.com 2019 - 2024. All rights reserved.