我的HTML页面上有四个选项列表,当选择这些选项时,我将检索数据。如何基于选择列表上的选择动态创建jqpl查询。
在我的例子中,有4个选项列表,用户可以从所有列表中选择选项,也可以选择它们的组合。在这种情况下,我该如何编写查询?
我的查询类似于
SELECT x FROM tablename x WHERE x.column1= :choice1 AND x.column2 = :choice2 AND x.column3 = :choice3 AND x.column4 = :choice4
发布于 2018-10-10 10:33:41
我想你可以试试这个Criteria API
发布于 2018-10-24 07:31:21
非常简单。您可以使用Map
保存每个条件中的参数,以验证choiceX是否存在。
示例:
String jpql = "SELECT x FROM tablename x WHERE 1 = 1 ";
Map<String, Object> parameters = new HashMap<>();
if (choice1 != null) {
jpql += "x.column1 = :choice1 ";
parameters.put("choice1", choice1);
}
if (choice2 != null) {
jpql += "x.column2 = :choice2 ";
parameters.put("choice2", choice2);
}
Query query = entityManager.createQuery(jpql);
for (Entry<String, Object> entry : parameters.entrySet()) {
query.setParameter(entry.getKey(), entry.getValue());
}
return query.getResultList();
https://stackoverflow.com/questions/52731496
复制相似问题