
paa.coder.noodleCriteriaBuilder.queryBuilder.specifications.ExistSpecification Maven / Gradle / Ivy
package paa.coder.noodleCriteriaBuilder.queryBuilder.specifications;
import paa.coder.noodleCriteriaBuilder.interfaces.NoodlePredicate;
import paa.coder.noodleCriteriaBuilder.interfaces.PathFinder;
import paa.coder.noodleCriteriaBuilder.queryBuilder.SubqueryBuilder;
import javax.persistence.criteria.*;
public class ExistSpecification implements NoodlePredicate {
private final SubqueryBuilder queryBuilder;
protected final Boolean isNot;
public ExistSpecification(SubqueryBuilder queryBuilder, Boolean isNot){
this.queryBuilder=queryBuilder;
this.isNot = isNot;
}
@Override
public Predicate apply(PathFinder pathFinder, CommonAbstractCriteria criteriaQuery, CriteriaBuilder criteriaBuilder){
final Subquery> build = SubqueryBuilder.NoodleSubquery.sample(queryBuilder, pathFinder, criteriaQuery).build();
final Predicate exists = criteriaBuilder.exists(build);
return isNot ? exists.not() : exists;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy