Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Override
- public List<Producer> findAllProducers(int page, int size, Sort sort) {
- // Pageable pageable = new PageRequest(page, size, sort);
- // return producerRepository.findAll(pageable);
- // CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
- // CriteriaQuery<Producer> query = criteriaBuilder.createQuery(Producer.class);
- // entityManager.createQuery("dadsada").setMaxResults(50).setFirstResult(0).getResultList()
- String query =
- "SELECT *" +
- " FROM (SELECT producer0_.id AS id1_66_, \n" +
- " producer0_.creation_date_time AS \n" +
- " creation_date_time2_66_, \n" +
- " producer0_.last_updated_date_time AS \n" +
- " last_updated_date_3_66_, \n" +
- " producer0_.address_id AS address_id10_66_, \n" +
- " producer0_.allows_drops AS allows_drops4_66_, \n" +
- " producer0_.geofence_radius AS geofence_radius5_66_, \n" +
- " producer0_.name AS name6_66_, \n" +
- " producer0_.status AS status7_66_, \n" +
- " producer0_.timezone AS timezone8_66_, \n" +
- " producer0_.tx_lock AS tx_lock9_66_, \n" +
- " producer0_.btu_id AS btu_id5_84_, \n" +
- " producer0_.division_id AS division_id6_84_, \n" +
- " producer0_.latitude AS latitude1_84_, \n" +
- " producer0_.longitude AS longitude2_84_, \n" +
- " producer0_.managed_services_code AS \n" +
- " managed_services_c3_84_, \n" +
- " producer0_.managed_services_provider_id AS \n" +
- " managed_services_p7_84_, \n" +
- " producer0_.producer_code AS producer_code4_84_, \n" +
- " producer0_.supply_company_id AS supply_company_id8_84_ \n" +
- " FROM producer producer0_ \n" +
- " left outer join supply_company supplycomp1_ \n" +
- " ON producer0_.managed_services_provider_id = \n" +
- " supplycomp1_.id \n" +
- " LEFT OUTER join company company2_ \n" +
- " on supplycomp1_.company_id = company2_.id \n" +
- " ORDER BY Lower(company2_.name) ASC) as p\n" +
- "WHERE ROWNUM <= 25 ";
- String mainSelect = "SELECT p.ID, " +
- "p.CREATION_DATE_TIME, " +
- "p.LAST_UPDATED_DATE_TIME, " +
- "p.ADDRESS_ID,p.ALLOWS_DROPS, " +
- "p.GEOFENCE_RADIUS," +
- "p.NAME,p.STATUS," +
- "p.TIMEZONE," +
- "p.TX_LOCK," +
- "p.BTU_ID," +
- "p.DIVISION_ID," +
- "p.LATITUDE," +
- "p.LONGITUDE," +
- "p.MANAGED_SERVICES_CODE," +
- "p.MANAGED_SERVICES_PROVIDER_ID," +
- "p.PRODUCER_CODE," +
- "p.SUPPLY_COMPANY_ID FROM Producer p " +
- "LEFT JOIN supply_company managedServicesProvider ON p.managed_services_provider_id = managedServicesProvider.id " +
- "LEFT JOIN company company1 ON managedServicesProvider.company_id = company1.id) " +
- "LEFT JOIN supply_company supplyCompany ON p.supply_company_id = supplyCompany.id " +
- "LEFT JOIN company company2 ON supplyCompany.company_id = company2.id) " +
- "LEFT JOIN postal_address address ON p.address_id ";
- StringBuilder sortString = new StringBuilder();
- String orderBy = "";
- if(sort.iterator().hasNext()) {
- Sort.Order order = sort.iterator().next();
- String column = order.getProperty();
- String[] splitColumn = column.split("\\.");
- if(splitColumn.length == 3) {
- switch (splitColumn[0]){
- case "supplyCompany":
- sortString.append("company2.");
- sortString.append(splitColumn[2]);
- break;
- case "managedServicesProvider":
- sortString.append("company1.");
- sortString.append(splitColumn[2]);
- break;
- }
- } else if (splitColumn.length == 2) {
- sortString.append(splitColumn[0]);
- sortString.append(".");
- sortString.append(splitColumn[1]);
- } else if(splitColumn.length == 1) {
- sortString.append(splitColumn[0]);
- }
- if(sortString.length() > 0) {
- orderBy = "ORDER BY Lower(" + sortString.toString() + ") " + order.getDirection() + ")";
- }
- }
- return entityManager.createNativeQuery(mainSelect + orderBy, Producer.class).setMaxResults(size).setFirstResult(page * size).getResultList();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement