Fix rebuilding of inverse Sets in Hibernate

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@3677 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2006-09-04 14:04:25 +00:00
parent 6b85d8125e
commit d470cafedc
5 changed files with 96 additions and 23 deletions

View File

@@ -148,24 +148,12 @@ public class ChildAssocImpl implements ChildAssoc, Serializable
return false;
}
ChildAssoc that = (ChildAssoc) obj;
if (EqualsHelper.nullSafeEquals(id, that.getId()))
{
return true;
}
else
{
return (
EqualsHelper.nullSafeEquals(this.getChild().getId(), that.getChild().getId())
&& EqualsHelper.nullSafeEquals(this.getQname(), that.getQname())
&& EqualsHelper.nullSafeEquals(this.getParent().getId(), that.getParent().getId())
&& EqualsHelper.nullSafeEquals(this.getTypeQName(), that.getTypeQName())
);
}
return EqualsHelper.nullSafeEquals(id, that.getId());
}
public int hashCode()
{
return (qName == null ? 0 : qName.hashCode());
return (id == null ? 0 : id.hashCode());
}
/**

View File

@@ -251,8 +251,8 @@ public class HibernateNodeTest extends BaseSpringTest
assoc1.setQname(QName.createQName(null, "number1"));
assoc1.setChildNodeName("number1");
assoc1.setChildNodeNameCrc(1);
assoc1.buildAssociation(containerNode, contentNode);
getSession().save(assoc1);
assoc1.buildAssociation(containerNode, contentNode);
// make another association between the same two parent and child nodes
ChildAssoc assoc2 = new ChildAssocImpl();
@@ -261,8 +261,8 @@ public class HibernateNodeTest extends BaseSpringTest
assoc2.setQname(QName.createQName(null, "number2"));
assoc2.setChildNodeName("number2");
assoc2.setChildNodeNameCrc(2);
assoc2.buildAssociation(containerNode, contentNode);
getSession().save(assoc2);
assoc2.buildAssociation(containerNode, contentNode);
assertFalse("Hashcode incorrent", assoc2.hashCode() == 0);
assertNotSame("Assoc equals failure", assoc1, assoc2);