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
CriteriaBuilder .方法-----------相对应的判断符号如下
| 方法名 | sql中的符号 |
|-------|-------|-------|
|between |between| and|
|equal |= |
|gt |> |
|ge |>=|
|lt |< |
|le |<=|
|like |like|
-eq :equal(相等)
-ne :not equal(不等)
-gt :greater than(大于)
-ge :greater than or equal(大于或等于)
-lt :less than(小于)
-le :less than or equal(小于或等于)