CriteriaBuilder是一个工厂类,用来创建安全查询的criteriaQuery对象。该对象是用来构建查询的。
CriteriaBuilder的2种创建方式
CriteriaBuilder criteriaBuilder = session.getCriteriaBuilder();
EntityManager em=session.getEntityManagerFactory().createEntityManager();
CriteriaBuilder cb=em.getCriteriaBuilder();
criteriaQuery查询主语句-------它必须作用于实体类型(指明主表),【它的初始化和泛型类的初始化一样】
CriteriaQuery<User>criteriaQuery= session.getCriteriaBuilder().createQuery(User.class);
Root根对象对应于from后面的表,如select * from a,b,c 那么a,b,c就相当于Root,Root,Root,Root是一个类型化的类,创建时要指定它的类型。
Root<User>rootUser=criteriaQuery.from(User.class);
Predicate查询条件的拼接对应于where后面的添加表达式。
关于Predicate接口用法参考https://www.cnblogs.com/rever/p/9773743.html
2
CriteriaBuilder .方法-----------相对应的判断符号如下
方法名 | sql中的符号 |
---|---|
between | between and |
equal | = |
gt | > |
ge | < |
lt | |
le | |
like | like |
-eq、-ne、-gt、-ge、-lt、-le英文意思
-eq :equal(相等)
-ne :not equal(不等)
-gt :greater than(大于)
-ge :greater than or equal(大于或等于)
-lt :less than(小于)
-le :less than or equal(小于或等于)
参考文章
《java-jpa-criteriaBuilder使用入门》, 一起来围观吧 https://blog.csdn.net/ID_Kong/article/details/70225032
-eq、-ne、-gt、-ge、-lt、-le英文意思
https://blog.csdn.net/Rainnnbow/article/details/47775665