我是JPA(JPQL)的新手,所以我没有很好的解决方案来维护WHERE子句和灵活的比较计划。 我想实现一个像以下形式的JPQL语句:
SELECT i FROM Item i
WHERE i.weight (comparison_operator_placeholder) :weight
AND i.height (comparison_operator_placeholder) :height;
(comparison_operator_placeholder):{ = | < | > | <= | >= }
应在运行期间根据用户的输入选择(comparison_operator_placeholder)。
直觉上我意识到不存在这样的语法,但是,除了为每个组合编写查询之外,还有其他方法。我会感谢任何解决方法。
答案 0 :(得分:1)
您不必编写多个查询。只需对运算符使用变量,如下所示:
String query = "SELECT i FROM Item i \n" +
"WHERE i.weight " + operator + " :weight \n" +
"AND i.height " + operator2 + " :height";