Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* The following statement doesn't work due to bug in Hibernate involving getting Arrayed parameter values. That's why it's now being passed directly to the method */
- //Collection<Object> paramValues = (Collection<Object>) query.getParameterValue(param); // Get full list of values from query.
- List<Object[]> results = new ArrayList<Object[]>();
- if (paramValues.size()>MAX_EXPR_NUM) {
- logger.debug("Query Parameter Count ("+paramValues.size()+") Exceeds Max Number of Values ("+MAX_EXPR_NUM+")");
- // Number of records being passed exceeds maximum allowed.
- // Get sublist of list. Set as new parameter.
- // Query results, then continue with next sublist.
- // Do until all elements of original list have been added
- int endIndex = 0;
- List<P> valuesList = new ArrayList<P>(paramValues);
- for (int i=1; endIndex<paramValues.size(); i++) {
- int startIndex = endIndex;
- endIndex = Math.min(paramValues.size(), i*MAX_EXPR_NUM);
- List<P> valuesSubList = valuesList.subList(startIndex, endIndex);
- query.setParameter(param, valuesSubList);
- //try {
- List<T[]> subQueryResults = query.getResultList();
- results.addAll(subQueryResults);
- /*} catch (IllegalArgumentException e) {
- logger.debug("*************************** Download excel exception in BaseSearchJpaDao = " + e);
- }*/
- }
- } else {
- logger.debug("Query Parameter Count ("+paramValues.size()+") Does Not Exceed Max Number of Values ("+MAX_EXPR_NUM+")");
- query.setParameter(param, paramValues);
- results = query.getResultList();
- }
- return results;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement