hibernate in 查询

博客主要围绕Hibernate查询展开,使用StringBuffer构建查询语句,根据条件拼接SQL。当查询所需的ids列表长度为0时,query.list()会出错,为解决此问题,采用在ids中添加绝对不存在的记录id的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   StringBuffer buf = new StringBuffer();
   if (!forObject) {
    buf.append("select count(*) ");
   }
   buf.append("from Agent agent where 1=1 ");

            String gradeId = (String)conditions.get("gradeId");
            if(gradeId != null && !gradeId.equals("") && gradeId != ""){
             buf.append(" and agent.gradeId=").append(gradeId);
            }   

            
   buf.append(" and agent.agentId in (:agentIds) ");

   Query query = sess.createQuery(buf.toString());
   
   List ids = CommisionInfoDelegateExt.findAgentIdList(conditions);
   System.out.println("ids.length=" + ids.size());

   query.setParameterList("agentIds",
     ids);

当ids长度为0(空记录)时,query.list()出错.没办法,现在在ids.add("-1"),塞入一条绝对不存在的记录id(绝对是不可能的).

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值