hql从参数值中删除括号

时间:2018-04-10 08:47:07

标签: 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)”

1 个答案:

答案 0 :(得分:1)

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

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