Я изучаю API-интерфейс Criteria, я сталкиваюсь с проблемой для создания моего запроса. Вот моя структура:Критерии Query 2, запрос через 3 объекта level
админ имеет список групп, группа имеет список администраторов (так ManyToMany отношения)
A Group имеет список компаний, компания имеет одну группу (так OneToMany)
чтобы найти все группы качестве администратора Я создал этот запрос:
@Override
public List<Group> getAllGroupsManagedByAdmin(Admin admin)
{
final CriteriaBuilder cb = entityManager.getCriteriaBuilder();
final CriteriaQuery<Group> query = cb.createQuery(Group.class);
final Root<Admin> admins = query.from(Admin.class);
query.where(cb.equal(admins.get(Admin_.id), admin.getId()))
.select(admins.join(Admin_.groups));
return this.entityManager.createQuery(query).getResultList();
}
Сейчас я пытаюсь найти все компании одной группы, но убедитесь, что эта группа управляются администратором, представленным в параметре, определение метода :
public List<Company> getCompaniesByGroupIdManagedByAdmin(String groupId, Admin admin)
Но все мои проекты не удались в этот момент. Может ли кто-нибудь мне помочь? Спасибо!