@Override
    public void addJoin(JoinType joinType, Expression<?> expr) {
        addLastJoin();
        if (!exprInJoins.contains(expr)) {
            if (expr instanceof Path && ((Path<?>) expr).getMetadata().isRoot()) {
                exprInJoins.add(expr);
            } else {
                validate(expr);
            }
            this.joinType = joinType;
            this.joinTarget = expr;
        } else if (validate) {
            throw new IllegalStateException(expr + " is already used");
        }
    }
Disable validation

@return the current object
querydsl-core/src/main/java/com/querydsl/core/DefaultQueryMetadata.java