diff --git a/querydsl-sql/src/main/java/com/mysema/query/sql/SchemaAndTable.java b/querydsl-sql/src/main/java/com/mysema/query/sql/SchemaAndTable.java index 733c2b51e..eee1b19a2 100644 --- a/querydsl-sql/src/main/java/com/mysema/query/sql/SchemaAndTable.java +++ b/querydsl-sql/src/main/java/com/mysema/query/sql/SchemaAndTable.java @@ -15,6 +15,8 @@ package com.mysema.query.sql; import java.io.Serializable; +import com.google.common.base.Objects; + /** * */ @@ -41,7 +43,7 @@ public class SchemaAndTable implements Serializable { return true; } else if (o instanceof SchemaAndTable) { SchemaAndTable st = (SchemaAndTable)o; - return st.schema.equals(schema) && st.table.equals(table); + return Objects.equal(st.schema, schema) && Objects.equal(st.table, table); } else { return false; } @@ -49,7 +51,7 @@ public class SchemaAndTable implements Serializable { @Override public int hashCode() { - return 31 * schema.hashCode() + table.hashCode(); + return (schema != null ? 31 * schema.hashCode() : 0) + table.hashCode(); } } diff --git a/querydsl-sql/src/test/java/com/mysema/query/sql/SchemaAndTableTest.java b/querydsl-sql/src/test/java/com/mysema/query/sql/SchemaAndTableTest.java new file mode 100644 index 000000000..6df704777 --- /dev/null +++ b/querydsl-sql/src/test/java/com/mysema/query/sql/SchemaAndTableTest.java @@ -0,0 +1,16 @@ +package com.mysema.query.sql; + +import org.junit.Test; +import static org.junit.Assert.assertEquals; + +public class SchemaAndTableTest { + + @Test + public void equalsAndHashCode() { + SchemaAndTable st1 = new SchemaAndTable(null, "table"); + SchemaAndTable st2 = new SchemaAndTable(null, "table"); + assertEquals(st1, st2); + assertEquals(st1.hashCode(), st2.hashCode()); + } + +}