Как получить доступ к столбцу объединенной сущности с помощью спецификации JPA?

#jpa #criteria-api

Вопрос:

Я создаю спецификацию, которая возвращает записи родительской сущности на основе столбца типа дочерней сущности. Эти 2 сущности имеют взаимно однозначное сопоставление, поэтому я присоединяюсь к ним.

Но проблема в том, что столбец типа находится внутри встроенного идентификатора дочерней сущности.

Мой фрагмент кода приведен ниже:

 return (root, query, criteriaBuilder) -> {
        Join<Parent, Child> join = root.join("child");
        return criteriaBuilder.and(
                criteriaBuilder.equal(join.get("id.type"), val)
        );
    };
 

У меня пока нет с этим никаких успехов. Как правильно получить доступ к столбцу тип, чтобы мой код работал?