Код для присоединения Запрос
CriteriaBuilder builder = session.getCriteriaBuilder();
CriteriaQuery<SchoolTO> cquery = builder.createQuery(SchoolTO.class);
Root<SchoolTO> root = cquery.from(SchoolTO.class);
Join<SchoolTO, StudentTO> join = root.join(SchoolTO_.studentList);
cquery.select(root);
cquery.where(builder.equal(join.get(StudentTO_.name), "john"));
cquery.distinct(true);
List<School> list = session.createQuery(cquery).getResultList();
Структура школьного класса
public class School
{
private List<Student> list;
}
Структура ученического класса
public class Student
{
private School school;
}
Данные
- Школа1 -> Джон, Мэтью, Уильям, Меган, Дейзи
- Школа2 -> Джон, Уильям, Саманта
- Школа3 -> Ромашка, Мэтью
Фактический результат отПрисоединяйтесь к Hibernate код
- Школа1 -> Джон, Мэтью, Уильям, Меган, Дейзи
- Школа2 -> Джон, Уильям, Саманта
Ожидаемый результат
- School1 -> John
- School2 -> John
При переходе в спящий режим я получаю все школы с именем ученика "john".Но когда я получаю доступ к списку ученических объектов внутри школьного предмета, у него есть ученики всех имен.Я пытаюсь достичь того, что под ожидаемым результатом.Дайте мне знать, что я здесь делаю неправильно.Заранее спасибо