/** * Specifications used by JPA Criteria Queries. * * A {@link org.springframework.data.jpa.domain.Specification} is a * Spring Data interface with a single method, {@link org.springframework.data.jpa.domain.Specification#toPredicate}, * that contains code that uses the metamodel classes defined elsewhere to create JPA * Criteria {@link javax.persistence.criteria.Predicate}s. This allows us to create * very advanced queries in a database-agnostic fashion. * * Each of these classes contains one or more static methods to produce the * appropriate {@link org.springframework.data.jpa.domain.Specification} implementation. * * @see <a href="http://invariantproperties.com/2013/12/19/project-student-persistence-with-spring-data/">Project Student: Persistence with Spring Data</a> * @see <a href="http://invariantproperties.com/2013/12/29/project-student-jpa-criteria-queries/">Project Student: JPA Criteria Queries</a> * @see <a href="http://projects.spring.io/spring-data/">Spring Data</a> * @see <a href="http://docs.oracle.com/javaee/6/tutorial/doc/gjitv.html">JEE Tutorial</a> * @see org.springframework.data.jpa.domain.Specification * @see javax.persistence.criteria.Predicate * @see com.invariantproperties.project.student.metamodel * * @author Bear Giles <bgiles@coyotesong.com> */ package com.invariantproperties.project.student.specification;