Hibernate用Criteria查询时使用Distinct方法去除重复数据
2012-07-13 23:31
816 查看
//片段代码
Criteria criteria = session.createCriteria(User.class);
criteria.add(Restrictions.like("name", name, MatchMode.ANYWHERE));
criteria.createAlias("perms","p");
criteria.add(Restrictions.in("p.uuid", perms)); //join 查询,出现重复数据
criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); //设置ENTITY级的DISTINCT模式,根实体
criteria.list(); //得出去除了重复数据后的结果集
//注:此方法完全正确,如果不成功请查看是否有其它类的方法把criteria.setResultTransformer设成了其它的值。
引用
criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); //设置ENTITY级的DISTINCT模式,根实体
这种方式的去重是在查询结果出来后去的,在数据库中查询语句查出来的还是会有重复的记录,在限制返回记录条数的条件查询中,还是会出现问题。
Criteria criteria = session.createCriteria(User.class);
criteria.add(Restrictions.like("name", name, MatchMode.ANYWHERE));
criteria.createAlias("perms","p");
criteria.add(Restrictions.in("p.uuid", perms)); //join 查询,出现重复数据
criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); //设置ENTITY级的DISTINCT模式,根实体
criteria.list(); //得出去除了重复数据后的结果集
//注:此方法完全正确,如果不成功请查看是否有其它类的方法把criteria.setResultTransformer设成了其它的值。
引用
criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); //设置ENTITY级的DISTINCT模式,根实体
这种方式的去重是在查询结果出来后去的,在数据库中查询语句查出来的还是会有重复的记录,在限制返回记录条数的条件查询中,还是会出现问题。
相关文章推荐
- C# 使用String.Join 和 Distinct 方法 去除字符串中重复字符
- 使用aggregate在MongoDB中查询重复数据记录的方法
- 利用hibernate的criteria多条件查询时得到的数据有重复
- hibernate中Criteria的DISTINCT查询问题的解决方法
- 使用 hibernate 时,如何去除重复项查询出的数据
- Asp.Net Nhibernate使用Criteria查询数据使用方法小记
- 关于Hibernate中fatch=eager的bag集合(一个java List)使用Criteria查询出现重复记录的问题
- 使用aggregate在MongoDB中查询重复数据记录的方法
- 使用 hibernate 时,如何去除重复项查询出的数据
- Hibernate查询数据的几种方式以及HQL用法及参数的几种使用方法
- hibernate使用原生sql查询Hibernate原生SQL多表查询字段名重复问题以及解决方法
- 使用hibernate的this.getSession().createSQLQuery(sql).list();方法查询数据时出现查到的数据和想象的不一致,很是郁闷,诡异
- Hibernate使用原生SQL适应复杂数据查询
- Hibernate使用DetachedCriteria和Criteria查询
- 插入MySQL数据库前去除重复数据的几种方法
- 使用hibernate查询时,查询的数据和数据库的不一样问题
- php 数组去除重复(不使用去重函数,不遍历)方法
- oracle查询重复数据与删除重复记录方法
- 如何使用Linq或EF来对数据去重——Distinct方法详解
- SQL 查询和删除重复字段数据的方法