Criteria criteria=classroomDao.getCriteria(new classroom());
criteria.setFetchMode("studentList", FetchMode.SELECT);
criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
后来在一对多 多对一双向关联的另一种情况下,发现此代码无效了,经过网上反复搜索,终于在一英文网页上找到了另一种方式,完美解决此问题。代码如下:
DetachedCriteria idsOnlyCriteria = DetachedCriteria.forClass(Classroom.class);
//此方法代码为添加的查询条件,比如.add()等
setQueryConditon(idsOnlyCriteria,myClassroom);
idsOnlyCriteria.setProjection(Projections.distinct(Projections.id()));
criteria.add(Subqueries.propertyIn("id", idsOnlyCriteria));