All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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