//片段代码
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模式,根实体
这种方式的去重是在查询结果出来后去的,在数据库中查询语句查出来的还是会有重复的记录,在限制返回记录条数的条件查询中,还是会出现问题。