Si vous cherchez un criteriaQuery sans se joindre à l'aide d'un sous-requête:
CriteriaBuilder criteriaBuilder = entityManger.getCriteriaBuilder();
CriteriaQuery<Employee> query = criteriaBuilder.createQuery(Employee.class);
Root<Employee> baseRoot = query.from(Employee.class);
Subquery<Department> subquery = query.subquery(Department.class);
Root<Department> subroot = subquery.from(Department.class);
subquery.select(subroot.get("empName"));
subquery.where(subroot.get("empParentName").in(nameList));
query.where(baseRoot.get("empName").in(subquery));
query.orderBy(criteriaBuilder.asc(baseRoot.get("empName")));
List<Employee> result = entityManager.createQuery(query).getResultList();
Comme les entités ne sont pas ajoutées, je suppose que "nomImage" est le nom de la variable de la colonne nom_emp dans les classes employee et department et empParentName pour emp_parentName. nameList est la liste des noms sur lesquels vous souhaitez filtrer.