1. 程式人生 > >hibernate一對多關聯查詢去重 criteria設定 解決分頁條數不正確的問題

hibernate一對多關聯查詢去重 criteria設定 解決分頁條數不正確的問題

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));