Author: sdumitriu
Date: 2007-12-14 14:08:02 +0100 (Fri, 14 Dec 2007)
New Revision: 6376

Modified:
   
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/store/XWikiHibernateStore.java
Log:
[performance] Revert saveOrUpdate changes, as the way it is currently done is 
actually slower.


Modified: 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/store/XWikiHibernateStore.java
===================================================================
--- 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/store/XWikiHibernateStore.java
     2007-12-14 00:05:05 UTC (rev 6375)
+++ 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/store/XWikiHibernateStore.java
     2007-12-14 13:08:02 UTC (rev 6376)
@@ -273,7 +273,15 @@
                 }
             }
 
-            session.saveOrUpdate(doc);
+            // Verify if the document already exists
+            Query query = session.createQuery("select xwikidoc.id from 
XWikiDocument as xwikidoc where xwikidoc.id = :id");
+            query.setLong("id", doc.getId());
+            if (query.uniqueResult()==null)
+                session.save(doc);
+            else
+                session.update(doc);
+            // TODO: this is slower!! How can it be improved?
+//            session.saveOrUpdate(doc);
 
             // Remove properties planned for removal
             if (doc.getObjectsToRemove().size()>0) {
@@ -1479,6 +1487,7 @@
             Session session = getSession(context);
 
             // need to delete existing links before saving the page's one
+            // TODO: is there any faster way to do this?
             deleteLinks(doc.getId(), context, bTransaction);
 
             // necessary to blank links from doc

_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications

Reply via email to