Author: agilliland
Date: Wed Apr 12 22:35:00 2006
New Revision: 393716

URL: http://svn.apache.org/viewcvs?rev=393716&view=rev
Log:
adding comment about how we handle detached objects being saved.


Modified:
    
incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernatePersistenceStrategy.java

Modified: 
incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernatePersistenceStrategy.java
URL: 
http://svn.apache.org/viewcvs/incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernatePersistenceStrategy.java?rev=393716&r1=393715&r2=393716&view=diff
==============================================================================
--- 
incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernatePersistenceStrategy.java
 (original)
+++ 
incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernatePersistenceStrategy.java
 Wed Apr 12 22:35:00 2006
@@ -132,7 +132,23 @@
             session.save(obj);
         }
         
+        /* 
+         * technically we shouldn't have any reason to support the saving
+         * of detached objects, so at some point we should re-evaluate this.
+         *
+         * objects should be re-attached before being saved again. it would
+         * be more appropriate to reject these kinds of saves because they are
+         * not really safe.
+         *
+         * NOTE: this may be coming from the way we use formbeans on the UI.
+         *   we very commonly repopulate all data in a pojo (including id) from
+         *   form data rather than properly loading the object from a Session
+         *   then modifying its properties.
+         */
         if ( !session.contains(obj) ) {
+            
+            log.debug("storing detached object: "+obj.toString());
+            
             // Object has been written to database, but instance passed in
             // is not a persistent instance, so must be loaded into session.
             PersistentObject vo =


Reply via email to