have u tried using query builder api instead ? using the search result object can help u get the correct number of rows.
Query query = queryBuilder.createQuery(PredicateGroup.create(map), session);
SearchResult result = query.getResult();
log.info("SIZE==="+result.getHits().size();)