今天在做codereview的时候,发现同事用了以下方法返回一个list。看了后台日志之后,很是奇怪,为什么只有一条sql,后台却打出了101条select。 /** * 根据练习加载试题 * 每次练习考试,有多条试题questionBank * 如果试题questionBank是选择题,又会对应4个选项questionOptions。 * 因此questionBank对象中有一个questionOptions集合,他们的关系是一对多 * @param pmId 练习ID * @return */ public List findMyQuestion(Long pmId, int pageNo, int pageRow, PageInfo pageInfo) { StringBuffer hql = new StringBuffer(""); hql.append("select distinct(pq.questionBank) from PracticeQuestion pq where pq.id="+pmId); hql.append(" and pq.questionBank.removed='"+GlobalConstant.DEL_FLAG_WSC+"'"); List list=this.executeHQLQuery(hql.toString(), null, pageNo, pageRow); return list; } private List executeHQLQuery(final String strQuery, final Map params,final int pageNo,final int pageRow) { return (List) getHibernateTem