diff --git a/source/java/org/alfresco/repo/avm/AVMAspectNameImpl.java b/source/java/org/alfresco/repo/avm/AVMAspectNameImpl.java index 9e206a8bd1..42314341b0 100644 --- a/source/java/org/alfresco/repo/avm/AVMAspectNameImpl.java +++ b/source/java/org/alfresco/repo/avm/AVMAspectNameImpl.java @@ -29,6 +29,11 @@ class AVMAspectNameImpl implements AVMAspectName, Serializable { private static final long serialVersionUID = -6282415309583571934L; + /** + * The Primary Key. + */ + private Long fID; + /** * The Node that has the named aspect. */ @@ -82,6 +87,24 @@ class AVMAspectNameImpl implements AVMAspectName, Serializable return fName; } + /** + * Set the primary key (For Hibernate) + * @param id The primary key. + */ + protected void setId(Long id) + { + fID = id; + } + + /** + * Get the primary key (For Hibernate) + * @return The primary key. + */ + protected Long getId() + { + return fID; + } + @Override public boolean equals(Object obj) { diff --git a/source/java/org/alfresco/repo/avm/AVMNodePropertyImpl.java b/source/java/org/alfresco/repo/avm/AVMNodePropertyImpl.java index 3c4ec46654..bda671f8e4 100644 --- a/source/java/org/alfresco/repo/avm/AVMNodePropertyImpl.java +++ b/source/java/org/alfresco/repo/avm/AVMNodePropertyImpl.java @@ -30,6 +30,11 @@ class AVMNodePropertyImpl implements AVMNodeProperty, Serializable { private static final long serialVersionUID = -7194228119659288619L; + /** + * The primary key. + */ + private Long fID; + /** * The node that owns this. */ @@ -105,4 +110,43 @@ class AVMNodePropertyImpl implements AVMNodeProperty, Serializable { fValue = value; } + + /** + * Set the primary key. (For Hibernate) + * @param id The primary key. + */ + protected void setId(Long id) + { + fID = id; + } + + /** + * Get the primary key. (For Hibernate) + * @return The primary key. + */ + protected Long getId() + { + return fID; + } + + @Override + public boolean equals(Object other) + { + if (this == other) + { + return true; + } + if (!(other instanceof AVMNodeProperty)) + { + return false; + } + AVMNodeProperty o = (AVMNodeProperty)other; + return fNode.equals(o.getNode()) && fName.equals(o.getName()); + } + + @Override + public int hashCode() + { + return fNode.hashCode() + fName.hashCode(); + } } diff --git a/source/java/org/alfresco/repo/avm/AVMStorePropertyImpl.java b/source/java/org/alfresco/repo/avm/AVMStorePropertyImpl.java index ac5b7a1329..34186bfa09 100644 --- a/source/java/org/alfresco/repo/avm/AVMStorePropertyImpl.java +++ b/source/java/org/alfresco/repo/avm/AVMStorePropertyImpl.java @@ -30,6 +30,11 @@ class AVMStorePropertyImpl implements AVMStoreProperty, Serializable { private static final long serialVersionUID = -5419606158990318723L; + /** + * The Primary Key. + */ + private Long fID; + /** * The store that owns this property. */ @@ -102,5 +107,44 @@ class AVMStorePropertyImpl implements AVMStoreProperty, Serializable { fValue = value; } + + /** + * Set the primary key. (For Hibernate) + * @param id The primary key. + */ + protected void setId(Long id) + { + fID = id; + } + + /** + * Get the primary key. (For Hibernate) + * @return The primary key. + */ + protected Long getId() + { + return fID; + } + + @Override + public boolean equals(Object other) + { + if (this == other) + { + return true; + } + if (!(other instanceof AVMStoreProperty)) + { + return false; + } + AVMStoreProperty o = (AVMStoreProperty)other; + return fStore.equals(o.getStore()) && fName.equals(o.getName()); + } + + @Override + public int hashCode() + { + return fStore.hashCode() + fName.hashCode(); + } } diff --git a/source/java/org/alfresco/repo/avm/ChildEntryDAOHibernate.java b/source/java/org/alfresco/repo/avm/ChildEntryDAOHibernate.java index 630bdd2480..7cb596889c 100644 --- a/source/java/org/alfresco/repo/avm/ChildEntryDAOHibernate.java +++ b/source/java/org/alfresco/repo/avm/ChildEntryDAOHibernate.java @@ -55,8 +55,12 @@ class ChildEntryDAOHibernate extends HibernateDaoSupport implements */ public ChildEntry getByNameParent(String name, DirectoryNode parent) { - ChildEntry query = new ChildEntryImpl(name, parent, null); - return (ChildEntry)getSession().get(ChildEntryImpl.class, (Serializable)query); + Query query = getSession().createQuery( + "from ChildEntryImpl ce where ce.name = :name and ce.parent = :parent"); + query.setString("name", name); + query.setEntity("parent", parent); + query.setCacheable(true); + return (ChildEntry)query.uniqueResult(); } /** diff --git a/source/java/org/alfresco/repo/avm/ChildEntryImpl.java b/source/java/org/alfresco/repo/avm/ChildEntryImpl.java index fde14f3eee..0ae3047c14 100644 --- a/source/java/org/alfresco/repo/avm/ChildEntryImpl.java +++ b/source/java/org/alfresco/repo/avm/ChildEntryImpl.java @@ -27,6 +27,11 @@ class ChildEntryImpl implements ChildEntry, Serializable { private static final long serialVersionUID = -307752114272916930L; + /** + * The primary key. + */ + private Long fID; + /** * The name of the entry. */ @@ -170,4 +175,22 @@ class ChildEntryImpl implements ChildEntry, Serializable { fVers = vers; } + + /** + * Set the primary key. (For Hibernate) + * @param id + */ + protected void setId(Long id) + { + fID = id; + } + + /** + * Get the primary key. (For Hibernate). + * @return The primary key. + */ + protected Long getId() + { + return fID; + } } diff --git a/source/java/org/alfresco/repo/avm/DeletedChildImpl.java b/source/java/org/alfresco/repo/avm/DeletedChildImpl.java index bc4de4597b..84c9770b63 100644 --- a/source/java/org/alfresco/repo/avm/DeletedChildImpl.java +++ b/source/java/org/alfresco/repo/avm/DeletedChildImpl.java @@ -27,6 +27,11 @@ class DeletedChildImpl implements DeletedChild, Serializable { private static final long serialVersionUID = 4997060636280774719L; + /** + * The Primary Key. + */ + private Long fID; + /** * The name of the deleted child. */ @@ -121,4 +126,22 @@ class DeletedChildImpl implements DeletedChild, Serializable { return fParent.hashCode() + fName.hashCode(); } + + /** + * Set the primary key. (For Hibernate) + * @param id The primary key. + */ + protected void setId(Long id) + { + fID = id; + } + + /** + * Get the primary key. (For Hibernate) + * @return The primary key. + */ + protected Long getId() + { + return fID; + } } diff --git a/source/java/org/alfresco/repo/avm/NewInAVMStoreImpl.java b/source/java/org/alfresco/repo/avm/NewInAVMStoreImpl.java index 2f232078a1..bd122f9bf5 100644 --- a/source/java/org/alfresco/repo/avm/NewInAVMStoreImpl.java +++ b/source/java/org/alfresco/repo/avm/NewInAVMStoreImpl.java @@ -27,6 +27,11 @@ class NewInAVMStoreImpl implements NewInAVMStore, Serializable { private static final long serialVersionUID = 1905996612150732182L; + /** + * The Primary Key. + */ + private Long fID; + /** * The AVMStore. */ @@ -86,5 +91,45 @@ class NewInAVMStoreImpl implements NewInAVMStore, Serializable { fAVMStore = store; } + + /** + * Set the primary key. (For Hibernate) + * @param id The primary key. + */ + protected void setId(Long id) + { + fID = id; + } + + /** + * Get the primary key. (For Hibernate) + * @return The primary key. + */ + protected Long getId() + { + return fID; + } + + @Override + public boolean equals(Object other) + { + if (this == other) + { + return true; + } + if (!(other instanceof NewInAVMStore)) + { + return false; + } + NewInAVMStore o = (NewInAVMStore)other; + return fAVMStore.equals(o.getAvmStore()) && + fNode.equals(o.getNode()); + } + + @Override + public int hashCode() + { + return fAVMStore.hashCode() + fNode.hashCode(); + } } diff --git a/source/java/org/alfresco/repo/avm/hibernate/AVM.hbm.xml b/source/java/org/alfresco/repo/avm/hibernate/AVM.hbm.xml index 344cad2f6b..9eda568cf3 100644 --- a/source/java/org/alfresco/repo/avm/hibernate/AVM.hbm.xml +++ b/source/java/org/alfresco/repo/avm/hibernate/AVM.hbm.xml @@ -128,24 +128,23 @@ - - - - - - + + + + + - + not-null="true"/> - - - + + + + - @@ -160,16 +159,19 @@ - - - - + + + + + + - - - - + + + + + @@ -183,10 +185,11 @@ - - - - + + + + + @@ -201,10 +204,11 @@ - - - - + + + + +