Fixes for node child uniqueness

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@3637 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2006-08-30 14:29:35 +00:00
parent 7e6c9644af
commit 6b3e0c0613
2 changed files with 29 additions and 27 deletions

View File

@@ -137,29 +137,31 @@
<id name="id" column="id" type="long" > <id name="id" column="id" type="long" >
<generator class="native" /> <generator class="native" />
</id> </id>
<!-- forward assoc to parent node --> <natural-id mutable="true">
<many-to-one <!-- forward assoc to parent node -->
name="parent" <many-to-one
class="org.alfresco.repo.domain.hibernate.NodeImpl" name="parent"
lazy="proxy" class="org.alfresco.repo.domain.hibernate.NodeImpl"
fetch="select" lazy="proxy"
optimistic-lock="true" fetch="select"
not-null="true" optimistic-lock="true"
unique-key="UIDX_CHILD_NAME" > not-null="true"
<column name="parent_node_id" /> unique-key="UIDX_CHILD_NAME" >
</many-to-one> <column name="parent_node_id" />
<!-- forward assoc to child node --> </many-to-one>
<many-to-one <!-- forward assoc to child node -->
name="child" <many-to-one
lazy="proxy" name="child"
fetch="select" lazy="proxy"
class="org.alfresco.repo.domain.hibernate.NodeImpl" fetch="select"
optimistic-lock="true" class="org.alfresco.repo.domain.hibernate.NodeImpl"
not-null="true" > optimistic-lock="true"
<column name="child_node_id" /> not-null="true" >
</many-to-one> <column name="child_node_id" />
<property name="typeQName" column="type_qname" type="QName" length="255" not-null="true" unique-key="UIDX_CHILD_NAME" /> </many-to-one>
<property name="qname" column="qname" type="QName" length="255" not-null="true" /> <property name="typeQName" column="type_qname" type="QName" length="255" not-null="true" unique-key="UIDX_CHILD_NAME" />
<property name="qname" column="qname" type="QName" length="255" not-null="true" />
</natural-id>
<property name="childNodeName" column="child_node_name" type="string" length="50" not-null="true" unique-key="UIDX_CHILD_NAME" /> <property name="childNodeName" column="child_node_name" type="string" length="50" not-null="true" unique-key="UIDX_CHILD_NAME" />
<property name="childNodeNameCrc" column="child_node_name_crc" type="long" not-null="true" unique-key="UIDX_CHILD_NAME" /> <property name="childNodeNameCrc" column="child_node_name_crc" type="long" not-null="true" unique-key="UIDX_CHILD_NAME" />
<property name="isPrimary" column="is_primary" /> <property name="isPrimary" column="is_primary" />

View File

@@ -383,12 +383,12 @@ public class HibernateNodeDaoServiceImpl extends HibernateDaoSupport implements
* if the association is recreated subsequently. * if the association is recreated subsequently.
*/ */
String uuid = childNode.getUuid(); String tempUuid = GUID.generate();
ChildAssoc assoc = new ChildAssocImpl(); ChildAssoc assoc = new ChildAssocImpl();
assoc.setTypeQName(assocTypeQName); assoc.setTypeQName(assocTypeQName);
assoc.setChildNodeName(getShortName(uuid)); assoc.setChildNodeName(getShortName(tempUuid));
assoc.setChildNodeNameCrc(getCrc(uuid)); assoc.setChildNodeNameCrc(getCrc(tempUuid));
assoc.setQname(qname); assoc.setQname(qname);
assoc.setIsPrimary(isPrimary); assoc.setIsPrimary(isPrimary);
assoc.buildAssociation(parentNode, childNode); assoc.buildAssociation(parentNode, childNode);
@@ -424,7 +424,7 @@ public class HibernateNodeDaoServiceImpl extends HibernateDaoSupport implements
String childNameNew = null; String childNameNew = null;
if (childName == null) if (childName == null)
{ {
childNameNew = childAssoc.getChild().getUuid(); childNameNew = childAssoc.getId().toString();
} }
else else
{ {