@Override
    protected Predicate convert(Predicate predicate, Role role) {
        predicate = (Predicate) ExpressionUtils.extract(predicate);
        if (predicate != null) {
            Context context = new Context();
            Predicate transformed = (Predicate) predicate.accept(collectionAnyVisitor, context);
            for (int i = 0; i < context.paths.size(); i++) {
                leftJoin(
                    (Path) context.paths.get(i).getMetadata().getParent(),
                    (Path) context.replacements.get(i));
                on(ANY);
            }
            return transformed;
        } else {
            return predicate;
        }
    }
{@code CollQueryMixin} extends {@link QueryMixin} to provide normalization logic specific to this module

@author tiwe

@param <T>
querydsl-collections/src/main/java/com/querydsl/collections/CollQueryMixin.java