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
本文介绍如何使用Hibernate Criteria API进行复杂查询操作,特别是针对实体及其关联实体的属性进行过滤。通过示例展示了如何设置查询条件来筛选特定的学生及其相关课程。
3497

被折叠的 条评论
为什么被折叠?



