JPQL 'Function' 不发送运算符

JPQL 'Function' doesn't send operator

我在 Spring Boot 上使用 EclipseLink 并且在存储库中有这个 jpql:

    @Query("select function('pMonth',p.payDay) ,sum(p.price) " +
            "from FullPayment p where " +
            "group by function('pMonth', p.payDay)"
    )
    List<Object[]> paymentMonthlyHistory();

但它不会发送运算符 p.payDay 调用我的自定义函数 pMonth。这是数据库错误:

Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Incorrect number of arguments for FUNCTION adventure_db.pMonth; expected 1, got 0
Error Code: 1318
Call: SELECT pMonth(), SUM(PRICE) FROM panel_fullPayment WHERE ((PAYDATE >= ?) AND (TRANSACTIONAMOUNT >= PRICE)) GROUP BY pMonth()
    bind => [1 parameter bound]

我使用 Mysql 作为 DBMS。任何帮助将不胜感激

问题是错字。字段名称是 payDate 但我写了 p.payDay。我把答案放在这里是为了强调,如果你在这里输入了错误的字段名,它不会在启动时向你显示错误,但会生成错误的查询。