cmTDsquery = createQuery("from CmTxnDetailStage cstg where cstg.statusCd=:err" +
" and (cstg.id.batchName like :batchname or cstg.id.batchName like :batchname1)"+
" and cstg.prodTypeBlfd like :search1 "+
" and trunc(cstg.tranUploadDttm)=:uploadDt");
cmTDsquery.bindStringProperty("search1", CmTxnDetailStage.properties.prodTypeBlfd, search);
我将搜索参数声明为
search = "MON%";
如果我用 'MON%'
替换 :search1
,它工作正常并且查询返回结果。
只有上面的代码不起作用并返回NULL
。
谢谢
----------------编辑1
cmTDsquery.bindStringProperty("batchname",CmTxnDetailStage.properties.batchName,batchNamePattern);
cmTDsquery.bindStringProperty("batchname1",CmTxnDetailStage.properties.batchName,batchNamePattern1);
很抱歉这么晚才提到,但是上面的bindStringProperty方法就像一个魅力。 batchname 和batchname1 包含“CR_STLM_UBROL%”和“%RMB_PINDBT%”。
最佳答案
设置参数时这样做
“%”+搜索+“%”
关于java - Hibernate 查询语言(如运算符)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29692027/