我正在创建定制的jpql查询来获取一些数据。在某些情况下,我想根据参数值是否为非null添加where子句。
例如,等效sql查询:
//If parameter status is not null.
SELECT sum(A.sal) FROM TABLE A WHERE A.STATUS = 'X' GROUP BY A.CURRENCY;
//else
SELECT sum(A.sal) FROM TABLE A GROUP BY A.CURRENCY;
有人能帮我吗。
我正在创建定制的jpql查询来获取一些数据。在某些情况下,我想根据参数值是否为非null添加where子句。
例如,等效sql查询:
//If parameter status is not null.
SELECT sum(A.sal) FROM TABLE A WHERE A.STATUS = 'X' GROUP BY A.CURRENCY;
//else
SELECT sum(A.sal) FROM TABLE A GROUP BY A.CURRENCY;
有人能帮我吗。
2条答案
按热度按时间8qgya5xd1#
拜托,jpql只是普通的字符串:)你想要这样的东西吗?
kb5ga3dv2#
两个查询:
可以压缩成一个。
首先让我们声明一个命名参数
statusParam
. 这个参数可以取任何值(比如'X'
或者null
从上面)。因此,上述两个查询可以重新写入: