Merge pull request #987 from querydsl/i981

Fix joins content for equals, hashCode and clone
This commit is contained in:
Timo Westkämper 2014-10-04 13:46:02 +03:00
commit 6b412b1f8a
2 changed files with 11 additions and 0 deletions

View File

@ -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);
}

View File

@ -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);