From ed3d9014f05b43a37cc55c4ff5b2a27a4b9c77b1 Mon Sep 17 00:00:00 2001 From: Derek Hulley Date: Sun, 20 Sep 2009 19:10:08 +0000 Subject: [PATCH] Merged V3.1 to HEAD 15963: Fix ETHREEOH-1962: Hibernate flush ordering incorrect for alf_qname - This merge will come from V3.2 15972 as well, but should not cause issues git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@16389 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../repo/domain/hibernate/HibernateQNameDAOImpl.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source/java/org/alfresco/repo/domain/hibernate/HibernateQNameDAOImpl.java b/source/java/org/alfresco/repo/domain/hibernate/HibernateQNameDAOImpl.java index d5f7df9a95..0c482f274c 100644 --- a/source/java/org/alfresco/repo/domain/hibernate/HibernateQNameDAOImpl.java +++ b/source/java/org/alfresco/repo/domain/hibernate/HibernateQNameDAOImpl.java @@ -172,6 +172,9 @@ public class HibernateQNameDAOImpl extends HibernateDaoSupport implements QNameD Session session = getSession(); Long id = (Long) session.save(namespace); DirtySessionMethodInterceptor.flushSession(session, true); + // Force a flush because Hibernate doesn't always get the flush order right + // for DBs that use sequences for the PK: ETHREEOH-1962 + DirtySessionMethodInterceptor.flushSession(getSession(), true); // Cache it namespaceEntityCache.put(id, namespaceUri); namespaceEntityCache.put(namespaceUri, id); @@ -300,6 +303,9 @@ public class HibernateQNameDAOImpl extends HibernateDaoSupport implements QNameD qnameEntity.setLocalName(localName); // Persist Long id = (Long) getSession().save(qnameEntity); + // Force a flush because Hibernate doesn't always get the flush order right + // for DBs that use sequences for the PK: ETHREEOH-1962 + DirtySessionMethodInterceptor.flushSession(getSession(), true); // Update the cache qnameEntityCache.put(qname, id); qnameEntityCache.put(id, qname);