私は、クラッシュしたサービスに、ネストされた関係を指定して、データベースからすべてを読み取る必要がないように指定する可能性を追加しようとしています。例えばjpa 2基準hibernate 5.2ネストされたジョイン
テイク私はそれらのエンティティ
Company.java
private List<Department> departments;
private SalaryCode salaryCode;
Department.java
private List<Employee> employees;
private Company company;
private SalaryCode salaryCode;
Employee.java
private Department department;
private SalaryCode salaryCode
そして、私の基準クエリのを持っていますいいえwはこれです:
Session session = sessionFactory.openSession();
CriteriaBuilder builder = session.getCriteriaBuilder();
CriteriaQuery<T> criteriaQuery = builder.createQuery(clazz);
Root<T> root = criteriaQuery.from(clazz);
//nestedRelationships is a varargs passed as parameters
for(String nestedRelationship : nestedRelationships) {
root.fetch(nestedRelationship, JoinType.LEFT);
}
List<T> result = session.createQuery(criteriaQuery.select(root)).list();
事は、私がnestedRelationshipとして「部門」を指定し、Employeeエンティティを照会する場合、それはうまく動作しますが、私は「department.salaryCode」を指定しようとすると、それは "にできないと言っては動作しませんです指定された名前で属性を見つける "。 もちろん、私は最初に "department"を取り出してから "department.salaryCode"を取っています。
サポートされていますか?はいの場合、どのように動作し、サポートされていない場合、私は何ができますか?