mirror of
https://github.com/querydsl/querydsl.git
synced 2026-06-27 21:01:15 +08:00
#834521 : added DefaultQueryMetadata equals and hashCode
This commit is contained in:
parent
83d1dd6126
commit
c5b888fb4c
@ -17,6 +17,8 @@ import java.util.Set;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import org.apache.commons.lang.ObjectUtils;
|
||||
|
||||
import com.mysema.query.types.Expression;
|
||||
import com.mysema.query.types.OrderSpecifier;
|
||||
import com.mysema.query.types.ParamExpression;
|
||||
@ -297,4 +299,45 @@ public class DefaultQueryMetadata implements QueryMetadata, Cloneable {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (o instanceof QueryMetadata) {
|
||||
QueryMetadata q = (QueryMetadata)o;
|
||||
return q.getFlags().equals(flags)
|
||||
&& q.getGroupBy().equals(groupBy)
|
||||
&& ObjectUtils.equals(q.getHaving(), having.getValue())
|
||||
&& q.isDistinct() == distinct
|
||||
&& q.isUnique() == unique
|
||||
&& q.getJoins().equals(joins)
|
||||
&& ObjectUtils.equals(q.getModifiers(), modifiers)
|
||||
&& q.getOrderBy().equals(orderBy)
|
||||
&& q.getParams().equals(params)
|
||||
&& q.getProjection().equals(projection)
|
||||
&& ObjectUtils.equals(q.getWhere(), where.getValue());
|
||||
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = prime + (distinct ? 1231 : 1237);
|
||||
result = prime * result + flags.hashCode();
|
||||
result = prime * result + groupBy.hashCode();
|
||||
result = prime * result + having.hashCode();
|
||||
result = prime * result + joins.hashCode();
|
||||
result = prime * result + ((modifiers == null) ? 0 : modifiers.hashCode());
|
||||
result = prime * result + orderBy.hashCode();
|
||||
result = prime * result + params.hashCode();
|
||||
result = prime * result + projection.hashCode();
|
||||
result = prime * result + (unique ? 1231 : 1237);
|
||||
result = prime * result + where.hashCode();
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -179,4 +179,55 @@ public class DefaultQueryMetadataTest {
|
||||
metadata.addFlag(flag);
|
||||
assertTrue(metadata.hasFlag(flag));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void Equals() {
|
||||
metadata.addJoin(JoinType.DEFAULT, str);
|
||||
metadata.addGroupBy(str);
|
||||
metadata.addHaving(str.isNotNull());
|
||||
metadata.addJoin(JoinType.DEFAULT, str2);
|
||||
QueryModifiers modifiers = new QueryModifiers(1l,2l);
|
||||
metadata.setModifiers(modifiers);
|
||||
metadata.addOrderBy(str.asc());
|
||||
metadata.addProjection(str, str.append("abc"));
|
||||
metadata.addWhere(str.eq("b"), str.isNotEmpty());
|
||||
|
||||
QueryMetadata metadata2 = new DefaultQueryMetadata();
|
||||
assertFalse(metadata.equals(metadata2));
|
||||
metadata2.addJoin(JoinType.DEFAULT, str);
|
||||
assertFalse(metadata.equals(metadata2));
|
||||
metadata2.addGroupBy(str);
|
||||
assertFalse(metadata.equals(metadata2));
|
||||
metadata2.addHaving(str.isNotNull());
|
||||
assertFalse(metadata.equals(metadata2));
|
||||
metadata2.addJoin(JoinType.DEFAULT, str2);
|
||||
assertFalse(metadata.equals(metadata2));
|
||||
metadata2.setModifiers(modifiers);
|
||||
assertFalse(metadata.equals(metadata2));
|
||||
metadata2.addOrderBy(str.asc());
|
||||
assertFalse(metadata.equals(metadata2));
|
||||
metadata2.addProjection(str, str.append("abc"));
|
||||
assertFalse(metadata.equals(metadata2));
|
||||
metadata2.addWhere(str.eq("b"), str.isNotEmpty());
|
||||
assertTrue(metadata.equals(metadata2));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void HashCode() {
|
||||
metadata.addJoin(JoinType.DEFAULT, str);
|
||||
metadata.addGroupBy(str);
|
||||
metadata.addHaving(str.isNotNull());
|
||||
metadata.addJoin(JoinType.DEFAULT, str2);
|
||||
QueryModifiers modifiers = new QueryModifiers(1l,2l);
|
||||
metadata.setModifiers(modifiers);
|
||||
metadata.addOrderBy(str.asc());
|
||||
metadata.addProjection(str, str.append("abc"));
|
||||
metadata.addWhere(str.eq("b"), str.isNotEmpty());
|
||||
metadata.hashCode();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void HashCode_Empty_Metadata() {
|
||||
metadata.hashCode();
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user