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 @@
-
-
-
-
+
+
+
+
+