Advertisement
Guest User

Untitled

a guest
Dec 11th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.88 KB | None | 0 0
  1. package id.co.koperasisyariah212.specification;
  2.  
  3. import id.co.koperasisyariah212.criteria.SearchCriteria;
  4. import id.co.koperasisyariah212.entity.UserAdmin;
  5. import javax.persistence.criteria.CriteriaBuilder;
  6. import javax.persistence.criteria.CriteriaQuery;
  7. import javax.persistence.criteria.Predicate;
  8. import javax.persistence.criteria.Root;
  9. import org.springframework.data.jpa.domain.Specification;
  10.  
  11. /**
  12.  *
  13.  * @author fariz
  14.  */
  15. public class UserAdministratorSpecification implements Specification<UserAdmin> {
  16.  
  17.     private final SearchCriteria criteria;
  18.  
  19.     public UserAdministratorSpecification(SearchCriteria criteria) {
  20.         this.criteria = criteria;
  21.     }
  22.  
  23.     @Override
  24.     public Predicate toPredicate(Root<UserAdmin> root, CriteriaQuery<?> cq, CriteriaBuilder builder) {
  25.         if ("email".equalsIgnoreCase(criteria.getKey())) {
  26.             return builder.like(builder.lower(
  27.                     root.get("user").get("email")),
  28.                     "%" + criteria.getValue().toString().toLowerCase() + "%");
  29.         }
  30.         if (criteria.getOperation().equalsIgnoreCase(">")) {
  31.             return builder.greaterThanOrEqualTo(
  32.                     root.<String>get(criteria.getKey()), criteria.getValue().toString());
  33.         } else if (criteria.getOperation().equalsIgnoreCase("<")) {
  34.             return builder.lessThanOrEqualTo(
  35.                     root.<String>get(criteria.getKey()), criteria.getValue().toString());
  36.         } else if (criteria.getOperation().equalsIgnoreCase(":")) {
  37.             if (root.get(criteria.getKey()).getJavaType() == String.class) {
  38.                 return builder.like(
  39.                         root.<String>get(criteria.getKey()), "%" + criteria.getValue() + "%");
  40.             } else {
  41.                 return builder.equal(root.get(criteria.getKey()), criteria.getValue());
  42.             }
  43.         }
  44.         return null;
  45.     }
  46.  
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement