HQL语句为每个数组值使用LIKE

时间:2017-06-29 17:27:12

标签: hibernate hql

我需要在HQL中包含输入数组的每个值。

示例输入数组:new String[]{"Value1%", "Value2%", "Value3%"}

我的查询应该像

id like "Value1%" or id like "Value2%" or id like "Value3%"

我试过如下

for(int inx=0;inx<Count;inx++){
            id+="id like id"+inx;
            if(inx!=Count-1){
                id+=" or ";
            }
        }
for(int inx=0;inx<Count;inx++){
            id = "id"+inx;
            qry.setParameter("id"+inx,Criteria[inx]);
        }

它让我低于错误

  

org.hibernate.QueryParameterException:找不到命名参数[id0]

我认为期望变量作为参数给出,但我不想为每个输入值创建更多变量。

1 个答案:

答案 0 :(得分:0)

我已经阅读了您的代码,并且我发现了可能的错误:

  1. 命名参数以:
  2. 开头

    因此您的代码可以替换为:

    指定参数的分配:

    id+="id like :id"+inx;
    

    替换命名参数:

    qry.setParameter(":id"+inx,Criteria[inx]);