JPQL比较运算符

时间:2016-03-19 15:26:45

标签: java mysql sql jpa jpql

我是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)。
直觉上我意识到不存在这样的语法,但是,除了为每个组合编写查询之外,还有其他方法。我会感谢任何解决方法。

1 个答案:

答案 0 :(得分:1)

您不必编写多个查询。只需对运算符使用变量,如下所示:

String query = "SELECT i FROM Item i \n" +
                "WHERE i.weight " + operator + " :weight \n" +
                "AND i.height " + operator2 + " :height";