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

com.github.wenhao.jpa.specification.LtSpecification Maven / Gradle / Ivy

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 LtSpecification extends AbstractSpecification {
    private final String property;
    private final Comparable compare;

    public LtSpecification(String property, Comparable compare) {
        this.property = property;
        this.compare = (Comparable) compare;
    }

    @Override
    public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder cb) {
        From from = getRoot(property, root);
        String field = getProperty(property);
        return cb.lessThan(from.get(field), compare);
    }
}