Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.00 KB | None | 0 0
  1. /* 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 */
  2. //Collection<Object> paramValues = (Collection<Object>) query.getParameterValue(param); // Get full list of values from query.
  3. List<Object[]> results = new ArrayList<Object[]>();
  4.  
  5. if (paramValues.size()>MAX_EXPR_NUM) {
  6. logger.debug("Query Parameter Count ("+paramValues.size()+") Exceeds Max Number of Values ("+MAX_EXPR_NUM+")");
  7. // Number of records being passed exceeds maximum allowed.
  8. // Get sublist of list. Set as new parameter.
  9. // Query results, then continue with next sublist.
  10. // Do until all elements of original list have been added
  11. int endIndex = 0;
  12. List<P> valuesList = new ArrayList<P>(paramValues);
  13.  
  14. for (int i=1; endIndex<paramValues.size(); i++) {
  15. int startIndex = endIndex;
  16. endIndex = Math.min(paramValues.size(), i*MAX_EXPR_NUM);
  17. List<P> valuesSubList = valuesList.subList(startIndex, endIndex);
  18. query.setParameter(param, valuesSubList);
  19.  
  20. //try {
  21. List<T[]> subQueryResults = query.getResultList();
  22. results.addAll(subQueryResults);
  23. /*} catch (IllegalArgumentException e) {
  24. logger.debug("*************************** Download excel exception in BaseSearchJpaDao = " + e);
  25. }*/
  26. }
  27. } else {
  28. logger.debug("Query Parameter Count ("+paramValues.size()+") Does Not Exceed Max Number of Values ("+MAX_EXPR_NUM+")");
  29. query.setParameter(param, paramValues);
  30. results = query.getResultList();
  31. }
  32.  
  33. return results;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement