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%";


如果我将:search1替换为'MON%',它可以正常工作并且查询返回结果。

仅上述代码不起作用,并返回NULL

谢谢

----------------编辑1

cmTDsquery.bindStringProperty("batchname",CmTxnDetailStage.properties.batchName,batchNamePattern);
            cmTDsquery.bindStringProperty("batchname1",CmTxnDetailStage.properties.batchName,batchNamePattern1);


很抱歉在此提过很久,但是在bindStringProperty方法之上,它的作用就像是一种魅力。
batchname和batchname1包含“ CR_STLM_UBROL%”和“%RMB_PINDBT%”。

最佳答案

设置参数时这样做

“%” +搜索+“%”

08-27 15:21