java - 在查询参数上传递值列表

标签 java mysql sql hql

String hql = "select * from myTable where isActive IN (:isActive)";
        Query query = session.createQuery(hql);
        query.setString("school","");
        query.setString("isActive", "Y");//working
        query.setString("isActive", "N");//working
        query.setString("isActive", "Y","N"); // not working
        query.setString("isActive", "'Y','N'"); // not working
        return query.list();

我不知道下面的代码是否应该工作,我想知道我是否可以将值列表传递给我的搜索字符串参数,这样我就不需要创建查询;一种用于选择所有数据,无论状态如何,另一种用于仅选择 Activity 数据。

最佳答案

使用Query.setParameterList()传入List作为参数:

String hql = "select * from myTable where isActive IN (:isActive)";
Query query = session.createQuery(hql);
List<String> isActiveList = new ArrayList<>();
isActiveList.add("Y");
isActiveList.add("N");
query.setParameterList("isActive", isActiveList);
return query.list();

关于java - 在查询参数上传递值列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36783130/

相关文章:

mysql - 合并两个具有不同结构的表的结果

java - OpenSL ES无需重新创建音频播放器即可更改音频源

java - 优雅的非线性任务调度?

sql - 什么是数据库中的半连接?

php - 使用多个 select 语句批量插入

mysql - 别名不适用于 MYSQL 中的 IF 条件

php - 仅显示表中包含特定单词或文本的行

java - Mybatis 无法绑定(bind)数据

Java 的 Swing 线程

php - 如何在 javascript 操作上重新加载 php 函数?