Criteria c = this.session.createCriteria();
ProjectionList pl = Projections.projectionList();
//以下成为第一部分
pl.add(Projections.groupProperty("1"));
pl.add(Projections.groupProperty("2"));
pl.add(Projections.groupProperty("3"));
pl.add(Projections.groupProperty("4"));//以下成为第二部分
pl.add(Projections.sum("1"));
pl.add(Projections.sum("2"));
pl.add(Projections.sum("3"));
pl.add(Projections.sum("4"));
c.setProjection(pl);
第一部分 和 第二部分 的位置 可以换吗?有什么区别吗?另外,criteria查询会生成sql语句吗?如果会的话,怎么查看生成的sql语句?谢谢各位大虾了。

解决方案 »

  1.   

    可以生成SQL语句啊,Criteria实际上是一个查询容器,它对查询条件表达式的添加进行了封装,具体的查询条件是通过add()方法添加的,而且具体的查询条件的表达式运算是通过Expression指定的。Hibernate在运行期会根据Criteria指定的表达式条件来添加查询条件,并且生成查询语句。
    当执行criteria.list()时就可以查看到SQL语句了。
      

  2.   


    那怎么查看生成的SQL语句呢?调试的时候怎么查看呢?哪个属性是啊?
      

  3.   

    可以配置一个show_sql,sql语句可以在控制台找到