setJoin(path, join); setAlias(parent, table, alias);
    private Path addJoin(Path path, Constraint constraint) {        Table table = constraint.getTable();	Path parent = path.getParent();	Path alias;	if (parent == null) {	    alias = Path.get(table.getName());	} else {	    alias = Path.get(parent.getPath().replace('.', '_') +			     "__" + table.getName());	}        if (!getTables(parent).contains(table)) {            Join join = getJoin(path);            Join simple = new SimpleJoin(table, alias);            Path tmp = Path.add(alias, "__tmp__");            Condition cond = Condition.equals(parent, tmp);            setColumns(tmp, getPaths(alias, constraint));            if (isOuter(path)) {                join = new LeftJoin(join, simple, cond);            } else {                join = new InnerJoin(join, simple, cond);            }            setJoin(path, join);            addTable(parent, table);        }        return alias;    }