src/main/java/org/seedstack/jpa/internal/JpaUtils.java
private static Join<?, ?> findOrCreateJoin(String property, From<?, ?> from) {
        for (Join<?, ?> rootJoin : from.getJoins()) {
            if (rootJoin.getAttribute().getName().equals(property)) {
                return rootJoin;
            }
        }
        return from.join(property);
    }
private static Join<?, ?> findOrCreateJoin(String property, From<?, ?> from) {
        for (Join<?, ?> rootJoin : from.getJoins()) {
            if (rootJoin.getAttribute().getName().equals(property)) {
                return rootJoin;
            }
        }
        return from.join(property);
    }
private static Join < ? , ? > findOrCreateJoin ( String property , From < ? , ? > from ) { for ( Join < ? , ? > rootJoin : from . getJoins ( ) ) { if ( rootJoin . getAttribute ( ) . getName ( ) . equals ( property ) ) { return rootJoin ; } } return from . join ( property ) ; }
Find an existing join for the property or create a new join.

@param property property to be joined
@param from     clause letting us keep track of all already existing joins
@return the join
Find an existing join for the property or create a new join .