Revision 119:949d5ea3ce6f
src/main/java/my/com/upass/dao/hibernate/UserDAOHibernate.java | ||
---|---|---|
594 | 594 |
} |
595 | 595 |
c.add(Restrictions.ilike(MU + ".userAlias", username)); |
596 | 596 |
|
597 |
checkQueryResultSize(c);
|
|
597 |
totalRows = checkTotalRows(c, totalRows);
|
|
598 | 598 |
} |
599 | 599 |
profiles.addAll(c.list()); |
600 | 600 |
if (txSession == null) |
... | ... | |
670 | 670 |
if (toDate != null) |
671 | 671 |
c.add(Restrictions.le(MU + ".udateCreated", toDate)); |
672 | 672 |
|
673 |
checkQueryResultSize(c);
|
|
673 |
totalRows = checkTotalRows(c, totalRows);
|
|
674 | 674 |
|
675 | 675 |
profiles.addAll(c.list()); |
676 | 676 |
|
... | ... | |
684 | 684 |
return profiles; |
685 | 685 |
} |
686 | 686 |
|
687 |
private Object checkQueryResultSize(Criteria c) throws UPassException { |
|
688 |
long totalRows; |
|
687 |
private long checkTotalRows(Criteria c, long totalRows) throws UPassException { |
|
689 | 688 |
Object rowCount = c.setProjection(Projections.rowCount()).uniqueResult(); |
690 | 689 |
if (rowCount instanceof Number) { |
691 |
totalRows = ((Number) rowCount).longValue(); |
|
690 |
totalRows += ((Number) rowCount).longValue();
|
|
692 | 691 |
if (totalRows > MAX_QUERY_RESULT_SIZE ) |
693 | 692 |
throw new UPassException(MinimalConstants.ERR_TOO_MANY_MATCHES); |
694 | 693 |
} |
695 | 694 |
c.setProjection(null); |
696 | 695 |
c.setResultTransformer(CriteriaSpecification.ROOT_ENTITY); |
697 |
return rowCount;
|
|
696 |
return totalRows;
|
|
698 | 697 |
} |
699 | 698 |
|
700 | 699 |
public boolean deleteProfile(String username, Class profileClass, Session txSession) throws Exception { |
Also available in: Unified diff