java - hql 去掉参数值的括号

标签 java postgresql hibernate hql

我有一个 hql 请求,我必须按列表中的参数值过滤行。 我将参数传递给请求,一切正常,直到其中一个参数不包含括号。 如果参数 = 'Windows' 一切正常,但如果 'macOS 10.13 (High Sierra)' 它找不到正确的行。

select agent where agent.operatingSystem in (:p1,:p2)

我发现如果存在不带括号的过滤值的行 - 它查询会找到它们: 此查询返回带有 os = "macOS 10.13 High Sierra"但未找到 "macOS 10.13 (High Sierra)"的代理

最佳答案

你可以这样做。准备操作系统列表并将其作为列表传递给您的“in 子句”。

Query query = session.createQuery("FROM YourTable t WHERE t.os IN (:osIds)");
query.setParameterList("osIds", listOfOs);

关于java - hql 去掉参数值的括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49749236/

相关文章:

java - 使用 DateTimeFormatter 和 LocalDateTime 检索日/月/年的小时/分钟 (Java 1.8)

java - 未使用 JVM 幸存者空间

java - 用java模仿浏览器

Java3d 行为和运动

sql - 如何从成绩和学分计算 GPA?

Spring + Hibernate 保存()不工作

java - 无法将数据从 View 传递到 Controller

postgresql - 意外删除了 postgres 默认 super 用户权限 - 我可以使用 pgAdmin 取回它吗?

sql - 获取 'psql: FATAL: database "forum.sql“不存在”错误

java - @持久上下文: Could someone explain that annotation?