You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by ar...@apache.org on 2006/08/17 18:14:59 UTC

svn commit: r432275 - /db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/sequencemanager.xml

Author: arminw
Date: Thu Aug 17 09:14:58 2006
New Revision: 432275

URL: http://svn.apache.org/viewvc?rev=432275&view=rev
Log:
fix OJB-96

Modified:
    db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/sequencemanager.xml

Modified: db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/sequencemanager.xml
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/sequencemanager.xml?rev=432275&r1=432274&r2=432275&view=diff
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/sequencemanager.xml (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/sequencemanager.xml Thu Aug 17 09:14:58 2006
@@ -97,10 +97,10 @@
                 <section>
                     <title>since OJB 1.0.4</title>
                     <p>
-                        OJB no longer assign the PK values of transient objects on creation of
-                        the <a href="ext:identity"><code>Identity</code></a> objects (using
+                        OJB no longer assign the PK values of <strong>transient objects</strong> on creation of
+                        <a href="ext:identity"><code>Identity</code></a> objects (using
                         <a href="ext:identity-factory"><code>IdentityFactory</code></a>).
-                        The <code>Identity</code> object of a transient persistence capable object
+                        The <code>Identity</code> object of a <em>transient persistence capable object</em>
                         is completely independent of the "real" primary key assigned on insert
                         of the object - when calling
                     </p>
@@ -108,7 +108,7 @@
 Identity oid = broker.serviceIdentity().buildIdentity(object);]]></source>
                     <p>
                         the specified persistence capable object will not be modified and the
-                        returned <code>Identity</code> object use transient primary key placeholder.
+                        returned <code>Identity</code> object use <em>transient primary key placeholders</em>.
                     </p>
                     <p>
                         The reason for doing this was to "harmonize" the behavior of OJB when
@@ -118,9 +118,23 @@
                         it's not possible to lookup the generated PK value before
                         the object is written to database.
                     </p>
-                    <p>
-                        
-                    </p>
+
+                    <anchor id="forceBackward"/>
+                    <section>
+                        <title>Backward compatibility: Force the assignment of PK fields while Identity creation</title>
+                        <p>
+                            To be backward compatible with older versions of OJB it's still possible to force the
+                            assignment of PK fields while Identity creation before the object was made persistent,
+                            using the an specific Identity constructor (instead of the
+                            <code>IdentityFactory</code> described in above sections).
+                        </p>
+                        <source><![CDATA[
+Identity oid = new Identity(object, broker);]]></source>
+                        <note>
+                            But it's strongly recommended to avoid these calls to avoid the drawbacks described above.
+                            This call will be illegal in future versions of OJB.
+                        </note>
+                    </section>
                 </section>
 
                 <anchor id="before-1.0.4"/>
@@ -130,25 +144,28 @@
                     By default OJB triggers the computation
                     of unique ids during calls to PersistenceBroker.store(...).
                     Sometimes it will be necessary to have the ids computed in advance,
-                    before a new persistent object was written to database.
+                    <strong>before</strong> a new persistent object was written to database.
                     This can be done by simply obtaining the Identity of the respective object as
                     follows:
                 </p>
                 <source><![CDATA[
-Identity oid = broker.serviceIdentity().buildIdentity(object);]]></source>
+Identity oid = broker.serviceIdentity().buildIdentity(object);
+or
+Identity oid = new Identity(object, broker);]]></source>
                 <p>
                     This creates an <a href="ext:api/identity"><code>Identity</code></a> object for the
-                    new persistent object and set all primary key values of the new persistent object
-                    - But it only works if <a href="#autoincrement"><code>autoincrement</code></a>
+                    transient object and set all primary key values. But this only works if
+                    <a href="#autoincrement"><code>autoincrement</code></a>
                     is enabled for the primary key fields.
                 </p>
                 <warning>
                     Force computation of unique values is not allowed when using <em>database based
                     Identity columns</em> for primary key generation (e.g via
                     <a href="#identity-columns">Identity column supporting sequence manager</a>), because the
-                    <em>real</em> PK value is at the earliest available after database insert operation. If you
-                    nevertheless force PK computing, OJB will use an temporary dummy PK value in the
-                    Identity object and this may lead to unexpeted behavior.
+                    <em>real</em> PK value is at the earliest available after database insert operation
+                    (never for transient objects). If you
+                    nevertheless force PK computing, OJB will use temporary dummy PK values in the
+                    transient object and created Identity instance - this may lead to unexpeted behavior.
                 </warning>
                 <p>
                     Info about lookup persistent objects by primary key fields



---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org