[hibernate-commits] Hibernate SVN: r12778 - core/trunk/documentation/manual/en-US/src/main/docbook/modules.
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Wed Jul 18 17:02:08 EDT 2007
Author: d.plentz
Date: 2007-07-18 17:02:08 -0400 (Wed, 18 Jul 2007)
New Revision: 12778
Modified:
core/trunk/documentation/manual/en-US/src/main/docbook/modules/session_api.xml
Log:
[HHH-1682] Improve the description of differences between save() and persist()
Modified: core/trunk/documentation/manual/en-US/src/main/docbook/modules/session_api.xml
===================================================================
--- core/trunk/documentation/manual/en-US/src/main/docbook/modules/session_api.xml 2007-07-17 13:56:01 UTC (rev 12777)
+++ core/trunk/documentation/manual/en-US/src/main/docbook/modules/session_api.xml 2007-07-18 21:02:08 UTC (rev 12778)
@@ -95,7 +95,30 @@
You may also use <literal>persist()</literal> instead of <literal>save()</literal>,
with the semantics defined in the EJB3 early draft.
</para>
-
+
+ <itemizedlist spacing="compact">
+ <listitem>
+ <para>
+ <literal>persist()</literal> makes a transient instance persistent.
+ However, it doesn't guarantee that the identifier value will be assigned to
+ the persistent instance immediately, the assignment might happen at flush time.
+ <literal>persist()</literal> also guarantees that it will not execute an
+ <literal>INSERT</literal> statement if it is called outside of transaction
+ boundaries. This is useful in long-running conversations with an extended
+ Session/persistence context.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>save()</literal> does guarantee to return an identifier. If an INSERT
+ has to be executed to get the identifier ( e.g. "identity" generator, not
+ "sequence"), this INSERT happens immediately, no matter if you are inside or
+ outside of a transaction. This is problematic in a long-running conversation
+ with an extended Session/persistence context.
+ </para>
+ </listitem>
+ </itemizedlist>
+
<para>
Alternatively, you may assign the identifier using an overloaded version
of <literal>save()</literal>.
More information about the hibernate-commits
mailing list