首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类似于HQL中的%运算符

类似于HQL中的%运算符
EN

Stack Overflow用户
提问于 2017-10-10 12:22:43
回答 1查看 1.7K关注 0票数 1

我试图运行下面的代码,但我得到了一个错误。

代码语言:javascript
复制
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 %操作符。请帮帮我。我也试过在线以下,但它不起作用。

代码语言:javascript
复制
String hql = "FROM MdFeedHandOff a WHERE a.handoff = :handoff  and  a.active  in ('A','I') and to_char(a.handoff) like :csiID" + "%";
EN

回答 1

Stack Overflow用户

发布于 2017-10-10 12:45:59

您应该将:csid参数名称放在查询中,并在您设置的参数中添加%通配符。而且,您似乎没有在params映射中设置csid。

查询

代码语言:javascript
复制
FROM MdFeedHandOff a WHERE a.handoff = :handoff 
     and  a.active  in ('A','I') and to_char(a.handoff) like :csiID";

Params

代码语言:javascript
复制
Map<String, Object> param = new HashMap<String, Object>();
param.put("handoff", handoff);
param.put("csiID", csiId.toString()+"%");
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46666680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档