2

私はかなりの量の調査を行い、最終的にこれを尋ねることにしました。

私はこのような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"

例に親プロパティが設定されている場合は正しく機能しますが、子プロパティはフィルタリングされません。

私が見ることができることから、子プロパティを結合するためにエイリアスを作成する必要がありますが、それは例の基準の目的を無効にします。

これについて何かコメントはありますか?

4

1 に答える 1

3

で作成された基準は、createCriteria(Department.class)従業員を返しません。部門を返します。

また、サンプル クエリを使用して、引数として渡す例と同じエンティティを取得します。しかし、ドキュメントが言うように:

バージョンのプロパティ、識別子、および関連付けは無視されます

于 2012-02-17T19:05:09.717 に答える