diff --git a/querydsl-core/src/main/java/com/mysema/query/DefaultQueryMetadata.java b/querydsl-core/src/main/java/com/mysema/query/DefaultQueryMetadata.java index b7a272867..3bca9a2d1 100644 --- a/querydsl-core/src/main/java/com/mysema/query/DefaultQueryMetadata.java +++ b/querydsl-core/src/main/java/com/mysema/query/DefaultQueryMetadata.java @@ -212,6 +212,7 @@ public class DefaultQueryMetadata implements QueryMetadata, Cloneable { @Override public QueryMetadata clone() { try { + addLastJoin(); DefaultQueryMetadata clone = (DefaultQueryMetadata) super.clone(); clone.exprInJoins = copyOf(exprInJoins); clone.groupBy = copyOf(groupBy); @@ -362,6 +363,7 @@ public class DefaultQueryMetadata implements QueryMetadata, Cloneable { @Override public boolean equals(Object o) { if (o instanceof QueryMetadata) { + addLastJoin(); QueryMetadata q = (QueryMetadata)o; return q.getFlags().equals(flags) && q.getGroupBy().equals(groupBy) @@ -382,6 +384,7 @@ public class DefaultQueryMetadata implements QueryMetadata, Cloneable { @Override public int hashCode() { + addLastJoin(); return Objects.hashCode(flags, groupBy, having, joins, modifiers, orderBy, params, projection, unique, where); } diff --git a/querydsl-core/src/test/java/com/mysema/query/DefaultQueryMetadataTest.java b/querydsl-core/src/test/java/com/mysema/query/DefaultQueryMetadataTest.java index faeead084..5cbdc390a 100644 --- a/querydsl-core/src/test/java/com/mysema/query/DefaultQueryMetadataTest.java +++ b/querydsl-core/src/test/java/com/mysema/query/DefaultQueryMetadataTest.java @@ -154,6 +154,14 @@ public class DefaultQueryMetadataTest { assertTrue(metadata.isUnique()); } + @Test + public void JoinShouldBeCommitted() { + DefaultQueryMetadata md = new DefaultQueryMetadata(); + md.addJoin(JoinType.DEFAULT, str); + DefaultQueryMetadata emptyMetadata = new DefaultQueryMetadata(); + assertFalse(md.equals(emptyMetadata)); + } + @Test public void Clone() { metadata.addJoin(JoinType.DEFAULT, str);