我试图运行下面的代码,但我得到了一个错误。
public MdFeedHandOff getFeedByHandOff(Integer handoff, Integer csiID){
logger.error("*************getFeedByHandOff(): handoff value is "+handoff);
String hql = "FROM MdFeedHandOff a WHERE a.handoff = :handoff and a.active in ('A','I') and to_char(a.handoff) like :csiID%";
Map<String, Object> param = new HashMap<String, Object>();
param.put("handoff", handoff);
List<MdFeedHandOff> batchJobList = searchForList(hql, param);
return batchJobList.isEmpty()?null:batchJobList.get(0);
}我想在hql中使用like %操作符。请帮帮我。我也试过在线以下,但它不起作用。
String hql = "FROM MdFeedHandOff a WHERE a.handoff = :handoff and a.active in ('A','I') and to_char(a.handoff) like :csiID" + "%";发布于 2017-10-10 12:45:59
您应该将:csid参数名称放在查询中,并在您设置的参数中添加%通配符。而且,您似乎没有在params映射中设置csid。
查询
FROM MdFeedHandOff a WHERE a.handoff = :handoff
and a.active in ('A','I') and to_char(a.handoff) like :csiID";Params
Map<String, Object> param = new HashMap<String, Object>();
param.put("handoff", handoff);
param.put("csiID", csiId.toString()+"%");https://stackoverflow.com/questions/46666680
复制相似问题