接口 CommonDao(根据指定的PO类、多个查询条件、排序字段及开始位置、查询总数量来获取po对象列表 findAllByPropertys)

该方法详细介绍了如何通过CommonDao接口,根据指定的实体类、HashMap对象(包含多个查询条件)、排序字段及分页信息,来查询并返回符合条件的PO对象列表。方法首先构建HQL查询语句,处理查询条件和排序,然后执行查询并返回结果集。

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

java.util.List findAllByPropertys(java.lang.Class cls,
                                  java.util.Map<java.lang.String,java.lang.Object[]> params,
                                  java.lang.String[] orders,
                                  int startindex,
                                  int count)

根据指定的PO类、多个查询条件、排序字段及开始位置、查询总数量来获取po对象列表.

 

参数:

cls - PO类

params - haspMap对象,多个参数,格式为<列名,列值(可以多个,或的关系)>

orders - 排序字段,(new String[]{"sortcode"})

startindex - 开始位置,查询全部,填写为-1

count - 查询总数 ,查询全部,填写为-1

返回:

返回po对象集合

public List findAllByPropertys(final Class cls, final Map<String,Object[]> params,final String[] orders,final int startindex,final int count) {
       String querystr = "from " + cls.getName();
       //处理列
       if(params!=null && params.size()>0){
           querystr += " where 1=1 ";
           for(String columnName : params.keySet()){
               if(StringUtils.isNotBlank(columnName)){
                   querystr += " and "+columnName+" in (:"+columnName+"Values)";
               }
           }
       }
       //处理排序
       if(orders!=null && orders.length>0){
           querystr += " order by ";
           for(int i=0; i<orders.length; i++){
               if(i>0){
                   querystr += ",";
               }
               querystr += orders[i];
           }
       }
       Query q = sessionFactory.getCurrentSession().createQuery(querystr); 
       if(params!=null && params.size()>0){
           for(String columnName : params.keySet()){
               if(StringUtils.isNotBlank(columnName)){
                   q.setParameterList(columnName+"Values", params.get(columnName));
               }
           }
       }
       //处理显示数量
        if(startindex>=0 && count>=0){
            q.setFirstResult(startindex);
            q.setMaxResults(count);
        }
       return q.list(); 
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

草原印象

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

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

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

打赏作者

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

抵扣说明:

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

余额充值