public List<DmDocument> getNotStoredDocList(int numDocs) {
    Disjunction disjunction = Restrictions.disjunction();
    disjunction.add(Restrictions.isNull("termFreqStored.id"));
    disjunction.add(Restrictions.neProperty("timeIndexed", "termFreqStored.timeIndexed"));

    Criteria crit = getSession().createCriteria(DmDocumentIndexed.class);
    crit.setProjection(Projections.property("document"));
    crit.createAlias("document", "doc", CriteriaSpecification.LEFT_JOIN);
    crit.createAlias(
        "doc.docTermFreqStoredList", "termFreqStored", CriteriaSpecification.LEFT_JOIN);
    crit.add(Restrictions.eq("isNeedReindex", false));
    crit.add(disjunction);
    crit.addOrder(Order.asc("timeIndexed"));
    crit.setMaxResults(numDocs);

    List<DmDocument> documentList = crit.list();
    // start - trigger lazy fetch
    for (DmDocument documentTmp : documentList) {
      if (documentTmp.getDocTermFreqStoredList() != null) {
        documentTmp.getDocTermFreqStoredList().size();
      }
      if (documentTmp.getDocumentIndexedList() != null) {
        documentTmp.getDocumentIndexedList().size();
      }
      //            if (documentTmp.getDocumentAuthorList() != null) {
      //                documentTmp.getDocumentAuthorList().size();
      //            }
      //            if (documentTmp.getDocumentKeywordList() != null) {
      //                documentTmp.getDocumentKeywordList().size();
      //            }
      if (documentTmp.getDocumentFolderList() != null) {
        documentTmp.getDocumentFolderList().size();
        //                for (DmDocumentFolder docFolder : documentTmp.getDocumentFolderList()) {
        //                    docFolder.getFolder().getPermissionList().size();
        //                }
      }
    }
    // end - trigger lazy fetch

    return documentList;
  }