Hibernate使用distinct返回不重复的数据,使用group by 进行分组

Posted yvioo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hibernate使用distinct返回不重复的数据,使用group by 进行分组相关的知识,希望对你有一定的参考价值。

 

//distinct使用

public List<String> distinctDutyDate() {
        String hql="select distinct(dutyDate) from DoctorDuty";
        Query query=getSession().createQuery(hql);
        List list= query.list();
        Iterator it= list.iterator();
        List<String> list1=new ArrayList<String>();
        while(it.hasNext()){
            String dutyDate=it.next()+"";
            list1.add(dutyDate);
        }
        return list1;
    }

 

 

//group by使用

public List<YearMonthDTO> getYearMonthByUserId(Integer userId, String submitType) {
        String hql="select submitYear,submitMonth from TotalBranchSubmit where userId=:userId and submitType=:submitType group by submitYear,submitMonth ";
        Query query = getSession().createQuery(hql)
                .setParameter("userId",userId)
                .setParameter("submitType",submitType);
        List list= query.list();
        Iterator it= list.iterator();
        List<YearMonthDTO> list1=new ArrayList<>();
        while(it.hasNext()){
            Object[] res=(Object[]) it.next();
            YearMonthDTO dto=new YearMonthDTO();
            String year=res[0]+"";
            String month=res[1]+"";
            dto.setYear(year);
            dto.setMonth(month);
            list1.add(dto);
        }
        return list1;
    }

 

以上是关于Hibernate使用distinct返回不重复的数据,使用group by 进行分组的主要内容,如果未能解决你的问题,请参考以下文章

distinct mysql过滤重复记录

mysql中去重 distinct 用法

mysql中去重 用group by优化distinct 用法

mysql 去除重复 Select中DISTINCT关键字的用法 在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留

SQL中distinct的用法

mysql distinct