动态拼接hibernate多条件查询语句

public List<TDjdReportMain> getDjdReportList(Integer year,Integer quarter,String memberSecondOrgcode,short status){
		return this.getHibernateTemplate().execute(new HibernateCallback<List<TDjdReportMain>>(){
			@Override
			public List<TDjdReportMain> doInHibernate(Session s) throws HibernateException {
				
				StringBuffer buf = new StringBuffer();
				Map<String,Object> params = new HashMap<String,Object>();
				if(year==0&&quarter==0&&"0".equals(memberSecondOrgcode)){
					buf.append("from TDjdReportMain where status =:status");
				}else{
					buf.append("from TDjdReportMain ");
					buf.append("where 1=1 ");
					if(year!=null&&year!=0){
						buf.append(" and year=:year ");
					}
					if(quarter!=null&&quarter!=0){
						buf.append(" and quarter=:quarter ");
					}
					if(memberSecondOrgcode!=null&&!"0".equals(memberSecondOrgcode)){
						buf.append(" and memberSecondOrgcode=:memberSecondOrgcode ");
					}
					buf.append(" and status=:status ");
				}
				Query query = s.createQuery(buf.toString());
				if(year!=null&&year!=0){
					query.setParameter("year", year);
				}
				if(quarter!=null&&quarter!=0){
					query.setParameter("quarter", quarter);
				}
				if(memberSecondOrgcode!=null&&!"0".equals(memberSecondOrgcode)){
					query.setParameter("memberSecondOrgcode", memberSecondOrgcode);
				}
				query.setParameter("status", status);
				return query.list();
			}
		});
		
		
	}

带分页的

public PageResult<TXf> searchXfList(int startIndex,int pageSize,String snum,String scode,String sname,String sdept,Date receiveDateStartDate,Date receiveDateEndDate){
		StringBuffer buf = new StringBuffer();
		Map<String,Object> params = new HashMap<String,Object>();
		if(snum==""&&scode==""&&sname==""&&sdept==""&&receiveDateStartDate==null&&receiveDateEndDate==null){
			buf.append("from TXf");
		}else{
			buf.append("from TXf ");
			buf.append("where 1=1 ");
			if(snum!=null&&!snum.equals("")){
				buf.append("and num=:snum ");
				params.put("snum", snum);
			}
			if(scode!=null&&!scode.equals("")){
				buf.append("and code=:scode ");
				params.put("scode", scode);
			}
			if(sname!=null&&!sname.equals("")){
				buf.append("and (userReflected=:sname or userReflect=:sname) ");
				params.put("sname", sname);
			}
			if(sdept!=null&&!sdept.equals("")){
				buf.append("and (deptReflected=:sdept or deptReflect=:sdept) ");
				params.put("sdept", sdept);
			}
			if(receiveDateStartDate!=null&&receiveDateEndDate!=null){
				buf.append("and receiveDate between :receiveDateStartDate and :receiveDateEndDate ");
				params.put("receiveDateStartDate", receiveDateStartDate);
				params.put("receiveDateEndDate", receiveDateEndDate);
			} else if(receiveDateStartDate!=null){
				buf.append("and receiveDate >=:receiveDateStartDate) ");
				params.put("receiveDateStartDate", receiveDateStartDate);
			}else if(receiveDateEndDate!=null){
				buf.append("and receiveDate <=:receiveDateEndDate) ");
				params.put("receiveDateEndDate", receiveDateEndDate);
			}
		
			
		}
		PageResult<TXf> pr = (PageResult<TXf>) this.query(buf.toString(),HqlUtils.generateCountHql(buf.toString(),null), params, startIndex,pageSize);
		return pr;
	}

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hidetou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值