Hibernate示例条件查询:按照子属性进行过滤

我已经做了相当数量的研究,并最终决定提出这个问题。

我有两个这样的类:

Employee
-emp_id
-name
-dep_id

Department
-dep_id
-name

我用这个代码来查询例子:

List<Employee> find = null;
Example example = Example.create(criteria)
        .excludeZeroes()
        .ignoreCase();
find = hibernateTemplate.getSessionFactory().getCurrentSession().createCriteria(Employee.class)
        .add(example)
        .list() ;
return find;

条件对象是Employee的一个实例,我想要检索具有给定部门名称的所有员工。

问题在于,当我执行代码时,即使条件具有如下属性,也可以从各个部门获得员工:criteria.department.name =“IT”

当该示例具有父属性设置但它不会过滤子属性时,它正常工作。

从我所看到的,我必须创建别名来加入子属性,但这种做法违反了示例条件的目的。

对此有何评论?


使用createCriteria(Department.class)创建的条件不会返回员工。 它会返回部门。

并且使用示例查询来检索与您作为参数传递的示例相同的实体。 但是,正如文件所述:

版本属性,标识符和关联被忽略

链接地址: http://www.djcxy.com/p/37105.html

上一篇: Hibernate Example Criteria query: filtering by child properties

下一篇: adding a criterion: string should be in collection