Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package id.co.koperasisyariah212.specification;
- import id.co.koperasisyariah212.criteria.SearchCriteria;
- import id.co.koperasisyariah212.entity.UserAdmin;
- import javax.persistence.criteria.CriteriaBuilder;
- import javax.persistence.criteria.CriteriaQuery;
- import javax.persistence.criteria.Predicate;
- import javax.persistence.criteria.Root;
- import org.springframework.data.jpa.domain.Specification;
- /**
- *
- * @author fariz
- */
- public class UserAdministratorSpecification implements Specification<UserAdmin> {
- private final SearchCriteria criteria;
- public UserAdministratorSpecification(SearchCriteria criteria) {
- this.criteria = criteria;
- }
- @Override
- public Predicate toPredicate(Root<UserAdmin> root, CriteriaQuery<?> cq, CriteriaBuilder builder) {
- if ("email".equalsIgnoreCase(criteria.getKey())) {
- return builder.like(builder.lower(
- root.get("user").get("email")),
- "%" + criteria.getValue().toString().toLowerCase() + "%");
- }
- if (criteria.getOperation().equalsIgnoreCase(">")) {
- return builder.greaterThanOrEqualTo(
- root.<String>get(criteria.getKey()), criteria.getValue().toString());
- } else if (criteria.getOperation().equalsIgnoreCase("<")) {
- return builder.lessThanOrEqualTo(
- root.<String>get(criteria.getKey()), criteria.getValue().toString());
- } else if (criteria.getOperation().equalsIgnoreCase(":")) {
- if (root.get(criteria.getKey()).getJavaType() == String.class) {
- return builder.like(
- root.<String>get(criteria.getKey()), "%" + criteria.getValue() + "%");
- } else {
- return builder.equal(root.get(criteria.getKey()), criteria.getValue());
- }
- }
- return null;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement