
com.github.wenhao.jpa.specification.LikeSpecification Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jpa-spec Show documentation
Show all versions of jpa-spec Show documentation
A JAP Query By Specification framework.
The newest version!
package com.github.wenhao.jpa.specification;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.From;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
public class LikeSpecification extends AbstractSpecification {
private final String property;
private final String[] patterns;
public LikeSpecification(String property, String... patterns) {
this.property = property;
this.patterns = patterns;
}
@Override
public Predicate toPredicate(Root root, CriteriaQuery> query, CriteriaBuilder cb) {
From from = getRoot(property, root);
String field = getProperty(property);
if (patterns.length == 1) {
return cb.like(from.get(field), patterns[0]);
}
Predicate[] predicates = new Predicate[patterns.length];
for (int i = 0; i < patterns.length; i++) {
predicates[i] = cb.like(from.get(field), patterns[i]);
}
return cb.or(predicates);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy