Jpa 2 критерия спящего режима 5.2 вложенных соединений ⇐ JAVA

Программисты JAVA общаются здесь
Anonymous
Jpa 2 критерия спящего режима 5.2 вложенных соединений

Сообщение Anonymous »

Я пытаюсь добавить в свои службы crud возможность указывать, какие вложенные отношения мне нужны, чтобы мне не приходилось читать все из базы данных.

Возьмем, к примеру, у меня есть эти объекты

Company.java

Код: Выделить всё

private List departments;
private SalaryCode salaryCode;
Department.java

Код: Выделить всё

private List employees;
private Company company;
private SalaryCode salaryCode;
Сотрудник.java

Код: Выделить всё

private Department department;
private SalaryCode salaryCode
И мой запрос по критериям на данный момент таков:

Код: Выделить всё

Session session = sessionFactory.openSession();
CriteriaBuilder builder = session.getCriteriaBuilder();
CriteriaQuery criteriaQuery = builder.createQuery(clazz);
Root root = criteriaQuery.from(clazz);

//nestedRelationships is a varargs passed as parameters
for(String nestedRelationship : nestedRelationships) {
root.fetch(nestedRelationship, JoinType.LEFT);
}

List result = session.createQuery(criteriaQuery.select(root)).list();
Дело в том, что если я укажу «отдел» как вложенное отношение и запросю сущность «Сотрудник», это работает хорошо, но когда я пытаюсь указать «department.salaryCode», это не работает говорит: «Невозможно найти атрибут с заданным именем».
Конечно, я сначала получаю «департамент», а затем «department.salaryCode».

Это поддерживается? Если да, то как это работает, и если оно не поддерживается, что я могу сделать?

Подробнее здесь: https://stackoverflow.com/questions/473 ... sted-joins

Вернуться в «JAVA»