譬如一次查询是这样的:select a, b, sum(c) from table where a > 0 and c < 1 group by a order by a
那么a、b、sum(c)都属于CriteriaQuery中的select参数,where后面的条件都属于CriteriaQuery的where后的参数,groupBy和having都属于CriteriaQuery的对应的参数。最终组合成一个丰满的CriteriaQuery,并由EntityManager来createQuery并获取结果集。
具体请参考这位大佬的文章,写的非常好!
https://blog.youkuaiyun.com/tianyaleixiaowu/article/details/90704969