Guest User

Untitled

a guest
Mar 22nd, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.72 KB | None | 0 0
  1. public Page<UserDTO> findByCriteria(String columnName, final List<String> filters, String sort, Pageable pageable) {
  2. CriteriaBuilder cb = em.getCriteriaBuilder();
  3. CriteriaQuery<UserDTO> cq = cb.createQuery(UserDTO.class);
  4. Root<UserDTO> iRoot = cq.from(UserDTO.class);
  5. Join<UserDTO, User> bJoin= iRoot.join("user");
  6.  
  7. cq.multiselect(bJoin.get("id"), bJoin.get("login"), bJoin.get("firstName"), bJoin.get("lastName"), bJoin.get("dayOfBirth"), iRoot.get("district"), iRoot.get("city"));
  8. final List<Predicate> predicates = new ArrayList<Predicate>();
  9.  
  10. try {
  11. bJoin.<String>get(columnName).as(String.class);
  12.  
  13. Expression<String> e1 = bJoin.<String>get(columnName).as(String.class);
  14. Expression convertedColumnName = cb.function("TO_CHAR", String.class, e1);
  15. filters.forEach(k -> {
  16. predicates.add(cb.like(cb.lower(convertedColumnName), "%" + k.toLowerCase() + "%"));
  17. });
  18. }catch (Exception e) {
  19. if (!filters.isEmpty()) {
  20. if (!iRoot.<String>get(columnName).getJavaType().toString().contains("String")) {
  21. Expression<String> e1 = iRoot.<String>get(columnName).as(String.class);
  22. Expression convertedColumnName = cb.function("TO_CHAR", String.class, e1);
  23. predicates.add(cb.like(convertedColumnName, "%" + filters + "%"));
  24. } else {
  25. filters.forEach(k -> {
  26. predicates.add(cb.like(cb.lower(iRoot.<String>get(columnName)), "%" + k.toLowerCase() + "%"));
  27. });
  28. }
  29. }
  30. }
  31.  
  32. Predicate[] predArray = new Predicate[predicates.size()];
  33. predicates.toArray(predArray);
  34.  
  35. cq.where(predArray);
  36.  
  37. TypedQuery<UserDTO> query = em.createQuery(cq);
  38.  
  39. Page<UserDTO> result = new PageImpl<UserDTO>(query.getResultList(), pageable, count);
  40. this.setWrappedData((List<UserDTO>) result.getContent());
  41. return result;
  42. }
  43.  
  44. o.h.type.descriptor.sql.BasicBinder : binding parameter [1] as [VARCHAR] - [%ankara%]
  45. o.h.type.descriptor.sql.BasicBinder : binding parameter [2] as [VARCHAR] - [%istanbul%]
  46. o.h.type.descriptor.sql.BasicExtractor : extracted value ([col_0_0_] : [BIGINT]) - [0]
  47. org.hibernate.SQL : select user1_.id as col_0_0_, user1_.login as col_1_0_, user1_.first_name as col_2_0_, user1_.last_name as col_3_0_, user1_.day_of_birth as col_4_0_, userdto0_.district as col_5_0_, userdto0_.city as col_6_0_ from userdto userdto0_ inner join user user1_ on userdto0_.id=user1_.id where (lower(userdto0_.city) like ?) and (lower(userdto0_.city) like ?) order by user1_.id asc
Add Comment
Please, Sign In to add comment