List<Student> list = session.createCriteria(Student.class)
//此处增加限制条件必须是Student已经存在的属性
.add(Restrictions.get("studentNumber", 100020))
//如果要增加对Student的关联类的属性的限制
//则必须重新createCriteria()
//如果此关联属性是集合,则只要集合里任意一个对象的属性满足下面条件即可
.createCriteria("courses")
.add(Restrictions.gt("className",name)) .list();
上面的代码表示建立Student类的条件查询,第一个查询条件是直接过滤Student的属性。第二个查询条件则过滤Student的关联实体的属性,其中 courses是Student类的关联实体课程的集合,而className则是课程类Course的属性。值得注意的是,返回的并不是Course对象,而是Student对象的集合。
该方法类似于Query的集合过滤,处理起来个人觉得是最方便的一种方式,详细资料可参考http://www.blogjava.net/Angelaxj2010/archive/2011/11/19/364316.html