Я провел большое количество исследований и, наконец, решил спросить об этом.
У меня есть два класса, подобных этому:
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, и я хочу получить всех сотрудников с заданным названием отдела.
Проблема заключается в том, что при выполнении кода я получаю сотрудников отвсе отделы, даже если для критериев установлено свойство, подобное следующему: crit.department.name = "IT"
Он работает правильно, если в примере установлены родительские свойства, но не фильтрует дочерние свойства.
Из того, что я вижу, я должен создать псевдонимы для присоединения дочерних свойств, но это противоречит цели критериев примера.
Есть ли какие-либо комментарии по этому поводу?