Hibernate 5 Критерии Присоединиться к отношениям один-ко-многим - PullRequest
0 голосов
/ 23 мая 2018

Код для присоединения Запрос

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".Но когда я получаю доступ к списку ученических объектов внутри школьного предмета, у него есть ученики всех имен.Я пытаюсь достичь того, что под ожидаемым результатом.Дайте мне знать, что я здесь делаю неправильно.Заранее спасибо

...