私はかなりの量の調査を行い、最終的にこれを尋ねることにしました。
私はこのような2つのクラスを持っています:
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"
例に親プロパティが設定されている場合は正しく機能しますが、子プロパティはフィルタリングされません。
私が見ることができることから、子プロパティを結合するためにエイリアスを作成する必要がありますが、それは例の基準の目的を無効にします。
これについて何かコメントはありますか?