From f15a1719952a8a8443bcc9d45884e05f2dfabd97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Mon, 30 Mar 2009 12:48:54 +0000 Subject: [PATCH] updated --- .../src/main/java/com/mysema/query/QueryBase.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/querydsl-core/src/main/java/com/mysema/query/QueryBase.java b/querydsl-core/src/main/java/com/mysema/query/QueryBase.java index 57eafcef2..cdf0d0969 100644 --- a/querydsl-core/src/main/java/com/mysema/query/QueryBase.java +++ b/querydsl-core/src/main/java/com/mysema/query/QueryBase.java @@ -7,7 +7,9 @@ package com.mysema.query; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashSet; import java.util.List; +import java.util.Set; import com.mysema.query.grammar.OrderSpecifier; import com.mysema.query.grammar.types.Expr; @@ -24,11 +26,13 @@ public class QueryBase> imp protected final CascadingBoolean having = new CascadingBoolean(); + protected final Set> exprInJoins = new HashSet>(); protected final List> joins = new ArrayList>(); protected final List> orderBy = new ArrayList>(); protected final List> select = new ArrayList>(); protected final CascadingBoolean where = new CascadingBoolean(); protected void clear(){ + exprInJoins.clear(); joins.clear(); groupBy.clear(); having.clear(); @@ -44,9 +48,12 @@ public class QueryBase> imp private final Metadata metadata = new Metadata(); - public SubType from(Expr... o) { + public SubType from(Expr... o) { for (Expr expr : o){ - joins.add(new JoinExpression(JoinType.DEFAULT,expr)); + if (!exprInJoins.contains(expr)){ + joins.add(new JoinExpression(JoinType.DEFAULT,expr)); + exprInJoins.add(expr); + } } return _this; }