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(小于或等于)

Q.E.D.

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

弱小和无知不是生存的障碍,傲慢才是。