Hibernate CriteriaQuery. Как написать вложенный запрос?

Есть 2 таблицы - function и tech_expert

function имеет поля id, challenge_id и function_id

tech_expert имеет поля id, function_id, expert_id

Таблица tech_expert хранит в себе ключ function_id из таблицы function

    public class FunctionEntity extends BaseEntity<Long> {
    
        @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
        @JoinColumn(name = "FUNCTION_ID")
        private Set<TechExpertEntity> techExperts = new HashSet<>();

        //другие столбцы
    }

Написал для них запрос в бд, который получает все challenge_id из таблицы function для значений function_id из подзапроса и он работает, но пытаюсь его перенести в java в виде CriteriaQuery, но пока не понимаю как переписать полностью этот запрос так, что бы hibbernate в итоге сгенерил запрос аналогичный тому, что написан руками, удалось написать только часть от этого (вложенный запрос)

Гугление на эту тему выдаёт в основном примеры где используется одна Entity

Буду крайне благодарен за любой совет или помощь в этом вопросе

SELECT challenge_id FROM function
WHERE EXISTS(SELECT function_id FROM tech_expert where expert_id = '10')));

Subquery subQuery = criteriaQuery.subquery(TechExpertEntity.class);
        Root subRoot = subQuery.from(TechExpertEntity.class);
        Predicate predicate = criteriaBuilder.and(
                criteriaBuilder.equal(subRoot.get("expertId"), "10"));

Ответы (0 шт):