Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2020
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.58 KB | None | 0 0
  1. @Override
  2. public List<Producer> findAllProducers(int page, int size, Sort sort) {
  3. // Pageable pageable = new PageRequest(page, size, sort);
  4. // return producerRepository.findAll(pageable);
  5.  
  6. // CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
  7. // CriteriaQuery<Producer> query = criteriaBuilder.createQuery(Producer.class);
  8. // entityManager.createQuery("dadsada").setMaxResults(50).setFirstResult(0).getResultList()
  9. String query =
  10. "SELECT *" +
  11. " FROM (SELECT producer0_.id AS id1_66_, \n" +
  12. " producer0_.creation_date_time AS \n" +
  13. " creation_date_time2_66_, \n" +
  14. " producer0_.last_updated_date_time AS \n" +
  15. " last_updated_date_3_66_, \n" +
  16. " producer0_.address_id AS address_id10_66_, \n" +
  17. " producer0_.allows_drops AS allows_drops4_66_, \n" +
  18. " producer0_.geofence_radius AS geofence_radius5_66_, \n" +
  19. " producer0_.name AS name6_66_, \n" +
  20. " producer0_.status AS status7_66_, \n" +
  21. " producer0_.timezone AS timezone8_66_, \n" +
  22. " producer0_.tx_lock AS tx_lock9_66_, \n" +
  23. " producer0_.btu_id AS btu_id5_84_, \n" +
  24. " producer0_.division_id AS division_id6_84_, \n" +
  25. " producer0_.latitude AS latitude1_84_, \n" +
  26. " producer0_.longitude AS longitude2_84_, \n" +
  27. " producer0_.managed_services_code AS \n" +
  28. " managed_services_c3_84_, \n" +
  29. " producer0_.managed_services_provider_id AS \n" +
  30. " managed_services_p7_84_, \n" +
  31. " producer0_.producer_code AS producer_code4_84_, \n" +
  32. " producer0_.supply_company_id AS supply_company_id8_84_ \n" +
  33. " FROM producer producer0_ \n" +
  34. " left outer join supply_company supplycomp1_ \n" +
  35. " ON producer0_.managed_services_provider_id = \n" +
  36. " supplycomp1_.id \n" +
  37. " LEFT OUTER join company company2_ \n" +
  38. " on supplycomp1_.company_id = company2_.id \n" +
  39. " ORDER BY Lower(company2_.name) ASC) as p\n" +
  40. "WHERE ROWNUM <= 25 ";
  41. String mainSelect = "SELECT p.ID, " +
  42. "p.CREATION_DATE_TIME, " +
  43. "p.LAST_UPDATED_DATE_TIME, " +
  44. "p.ADDRESS_ID,p.ALLOWS_DROPS, " +
  45. "p.GEOFENCE_RADIUS," +
  46. "p.NAME,p.STATUS," +
  47. "p.TIMEZONE," +
  48. "p.TX_LOCK," +
  49. "p.BTU_ID," +
  50. "p.DIVISION_ID," +
  51. "p.LATITUDE," +
  52. "p.LONGITUDE," +
  53. "p.MANAGED_SERVICES_CODE," +
  54. "p.MANAGED_SERVICES_PROVIDER_ID," +
  55. "p.PRODUCER_CODE," +
  56. "p.SUPPLY_COMPANY_ID FROM Producer p " +
  57. "LEFT JOIN supply_company managedServicesProvider ON p.managed_services_provider_id = managedServicesProvider.id " +
  58. "LEFT JOIN company company1 ON managedServicesProvider.company_id = company1.id) " +
  59. "LEFT JOIN supply_company supplyCompany ON p.supply_company_id = supplyCompany.id " +
  60. "LEFT JOIN company company2 ON supplyCompany.company_id = company2.id) " +
  61. "LEFT JOIN postal_address address ON p.address_id ";
  62.  
  63. StringBuilder sortString = new StringBuilder();
  64. String orderBy = "";
  65. if(sort.iterator().hasNext()) {
  66. Sort.Order order = sort.iterator().next();
  67. String column = order.getProperty();
  68.  
  69. String[] splitColumn = column.split("\\.");
  70. if(splitColumn.length == 3) {
  71. switch (splitColumn[0]){
  72. case "supplyCompany":
  73. sortString.append("company2.");
  74. sortString.append(splitColumn[2]);
  75. break;
  76. case "managedServicesProvider":
  77. sortString.append("company1.");
  78. sortString.append(splitColumn[2]);
  79. break;
  80. }
  81. } else if (splitColumn.length == 2) {
  82. sortString.append(splitColumn[0]);
  83. sortString.append(".");
  84. sortString.append(splitColumn[1]);
  85. } else if(splitColumn.length == 1) {
  86. sortString.append(splitColumn[0]);
  87. }
  88.  
  89. if(sortString.length() > 0) {
  90. orderBy = "ORDER BY Lower(" + sortString.toString() + ") " + order.getDirection() + ")";
  91. }
  92. }
  93.  
  94. return entityManager.createNativeQuery(mainSelect + orderBy, Producer.class).setMaxResults(size).setFirstResult(page * size).getResultList();
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement