Criteria Query通过面向对象化的设计,将数据查询条件封装为一个对象。简单来
讲,Criteria Query可以看作是传统SQL的对象化表示,如:
Criteria criteria = session.createCriteria(User.class);
criteria.add(Expression.eq("name","Erica"));
criteria.add(Expression.eq("sex",newInteger(1)));
这里的criteria 实例实际上是SQL “Select * from t_user where
name=’Erica’ and sex=<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="1" unitname="”"></chmetcnv>1”的封装(我们可以打开Hibernate 的show_sql 选项,
以观察Hibernate在运行期生成的SQL语句)。
Hibernate 在运行期会根据Criteria 中指定的查询条件(也就是上面代码中通过
criteria.add方法添加的查询表达式)生成相应的SQL语句。
这种方式的特点是比较符合Java 程