我在查询查询时遇到问题这是我的代码
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对于数组是错误的
请帮助我
我看到两个主要问题:
SELECT product.id as productId
并未从TmpProduct
中选择任何内容。您可能是指select TmpProduct.ProductId
。select
子句的列列表中有一个悬空的昏迷。