src/main/java/org/seedstack/jpa/internal/JpaUtils.java
private static Join<?, ?> joinRecursively(String[] properties, Join<?, ?> join, int index) {
        if (index < properties.length - 1) {
            return joinRecursively(properties, findOrCreateJoin(properties[index], join), index + 1);
        } else {
            return join;
        }
    }
private static Join<?, ?> joinRecursively(String[] properties, Join<?, ?> join, int index) {
        if (index < properties.length - 1) {
            return joinRecursively(properties, findOrCreateJoin(properties[index], join), index + 1);
        } else {
            return join;
        }
    }
Join recursively using the split property path.

@param properties property path.
@param join       current join.
@param index      index of the current property to be joined.
@return the resulting join.