postgresql Hibernate中“ORDER”处或附近的语法错误

8qgya5xd  于 2022-12-12  发布在  PostgreSQL
关注(0)|答案(1)|浏览(130)

我有一个查询,我想通过持久化来执行。

final String StatusQuery = convertStringFiltersToQuery(StatusFilters);

 sql = String.format("Select * FROM Program p LEFT JOIN p.user vt LEFT JOIN vt.Vendor LEFT JOIN p.Program WHERE vt.Status IN (%s) ORDER BY ID DESC",
                StatusQuery);

entityManager.createNativeQuery(sql).getResultList();

但是当我尝试执行它时,我得到了如下错误
错误原因:错误:在“ORDER”或其附近有语法错误
我错过了什么吗?
提前感谢!!

更新问题后,从以下答案中获得建议:

现在已更改查询,但似乎发生了相同的问题:

sql = String.format("Select * FROM Program p LEFT JOIN p.user vt LEFT JOIN vt.Vendor LEFT JOIN p.Program on (p.program_id = p.UserProgram.program_id) WHERE vt.Status IN (%s) ORDER BY ID DESC",

错误原因:错误:在“ORDER”或其附近有语法错误

qnakjoqk

qnakjoqk1#

看起来你需要一个join的条件。这些syntax errors at or near 'x'通常指向x之前的一个错误,在这种情况下,LEFT JOIN没有ON子句。
编辑:对问题更新的回应,您将需要每个LEFT JOIN子句的条件,这里有一个examplehere

相关问题