> What I do NOT see in my test are those strange "batching prepstmnt" update
statements in the logs. I wonder what JPA is doing here. It looks like JPA
is stockpiling update statements for later usage. And what exactly are those
"executing batch prepstmnt" for?
I don't have a good answer for you here... Maybe someone else on the list
can chime in on this question.

I do have a few thoughts as to why you can't recreate the problem. When you
are running the application server, are your Entities being
serialized/deserialized? If so, try adding this to your test case... Just
prior to calling em.merge(...), serialize and then deserialize your
Entities. This will strip out our detached statemanager and this could
explain the behavior that you are seeing. Give it a shot and let us know how
it goes.

On Thu, Aug 4, 2011 at 8:43 AM, M. Walter <marc.wal...@sbb.ch> wrote:

> Well I'm not able to get a test "working". :-( In the JUnit test only the
> changed child's version is increased as it should be. The main difference
> is
> that in my test I'm using resource-local transaction type with Derby
> instead
> of JTA and Oracle. OpenJPA properties in the persistence.xml files are the
> same.
>
> What I do NOT see in my test are those strange "batching prepstmnt" update
> statements in the logs. I wonder what JPA is doing here. It looks like JPA
> is stockpiling update statements for later usage. And what exactly are
> those
> "executing batch prepstmnt" for? As you can see JPA is setting the
> MUT_VERSION of all children to 28 but only child 328241 has actually
> changed
> the MUT_USER field:
>
> openjpa.jdbc.JDBC: Trace: The batch limit is set to 100.
> openjpa.jdbc.SQL: Trace: <t 1494112526, conn 1933144889> batching prepstmnt
> 2077588437 UPDATE CHILD SET MUT_TSTAMP = ?, MUT_VERSION = ?, PARENT_ID = ?
> WHERE ID = ? AND CHILD.MUT_VERSION = ? [params=(Timestamp) 2011-08-04
> 15:36:37.496, (int) 28, (long) 13260, (long) 328238, (int) 27]
> openjpa.jdbc.SQL: Trace: <t 1494112526, conn 1933144889> batching prepstmnt
> 2077588437 UPDATE CHILD SET MUT_TSTAMP = ?, MUT_VERSION = ?, PARENT_ID = ?
> WHERE ID = ? AND CHILD.MUT_VERSION = ? [params=(Timestamp) 2011-08-04
> 15:36:37.496, (int) 28, (long) 13260, (long) 328239, (int) 27]
> openjpa.jdbc.SQL: Trace: <t 1494112526, conn 1933144889> batching prepstmnt
> 2077588437 UPDATE CHILD SET MUT_TSTAMP = ?, MUT_VERSION = ?, PARENT_ID = ?
> WHERE ID = ? AND CHILD.MUT_VERSION = ? [params=(Timestamp) 2011-08-04
> 15:36:37.496, (int) 28, (long) 13260, (long) 328240, (int) 27]
> openjpa.jdbc.SQL: Trace: <t 1494112526, conn 1933144889> executing batch
> prepstmnt 2077588437 UPDATE CHILD SET MUT_TSTAMP = ?, MUT_VERSION = ?,
> PARENT_ID = ? WHERE ID = ? AND CHILD.MUT_VERSION = ? [params=(Timestamp)
> 2011-08-04 15:36:37.496, (int) 28, (long) 13260, (long) 328240, (int) 27]
> openjpa.jdbc.JDBC: Trace: ExecuteBatch command returns update success count
> 3
> openjpa.jdbc.JDBC: Trace: ExecuteBatch command returns update count -2 for
> statement UPDATE CHILD SET MUT_TSTAMP = ?, MUT_VERSION = ?, PARENT_ID = ?
> WHERE ID = ? AND CHILD.MUT_VERSION = ?.
> openjpa.jdbc.JDBC: Trace: ExecuteBatch command returns update count -2 for
> statement UPDATE CHILD SET MUT_TSTAMP = ?, MUT_VERSION = ?, PARENT_ID = ?
> WHERE ID = ? AND CHILD.MUT_VERSION = ?.
> openjpa.jdbc.JDBC: Trace: ExecuteBatch command returns update count -2 for
> statement UPDATE CHILD SET MUT_TSTAMP = ?, MUT_VERSION = ?, PARENT_ID = ?
> WHERE ID = ? AND CHILD.MUT_VERSION = ?.
> openjpa.jdbc.SQL: Trace: <t 1494112526, conn 1933144889> executing
> prepstmnt
> 628303219 UPDATE CHILD SET MUT_TSTAMP = ?, MUT_USER = ?, MUT_VERSION = ?,
> PARENT_ID = ? WHERE ID = ? AND CHILD.MUT_VERSION = ? [params=(Timestamp)
> 2011-08-04 15:36:37.496, (String) JOHN, (int) 28, (long) 13260, (long)
> 328241, (int) 27]
> openjpa.jdbc.SQL: Trace: <t 1494112526, conn 1933144889> batching prepstmnt
> 904345063 UPDATE CHILD SET MUT_TSTAMP = ?, MUT_VERSION = ?, PARENT_ID = ?
> WHERE ID = ? AND CHILD.MUT_VERSION = ? [params=(Timestamp) 2011-08-04
> 15:36:37.496, (int) 28, (long) 13260, (long) 328242, (int) 27]
> openjpa.jdbc.SQL: Trace: <t 1494112526, conn 1933144889> batching prepstmnt
> 904345063 UPDATE CHILD SET MUT_TSTAMP = ?, MUT_VERSION = ?, PARENT_ID = ?
> WHERE ID = ? AND CHILD.MUT_VERSION = ? [params=(Timestamp) 2011-08-04
> 15:36:37.496, (int) 28, (long) 13260, (long) 328243, (int) 27]
> openjpa.jdbc.SQL: Trace: <t 1494112526, conn 1933144889> batching prepstmnt
> 904345063 UPDATE CHILD SET MUT_TSTAMP = ?, MUT_VERSION = ?, PARENT_ID = ?
> WHERE ID = ? AND CHILD.MUT_VERSION = ? [params=(Timestamp) 2011-08-04
> 15:36:37.496, (int) 28, (long) 13260, (long) 328244, (int) 27]
> openjpa.jdbc.SQL: Trace: <t 1494112526, conn 1933144889> batching prepstmnt
> 904345063 UPDATE CHILD SET MUT_TSTAMP = ?, MUT_VERSION = ?, PARENT_ID = ?
> WHERE ID = ? AND CHILD.MUT_VERSION = ? [params=(Timestamp) 2011-08-04
> 15:36:37.496, (int) 28, (long) 13260, (long) 328245, (int) 27]
> openjpa.jdbc.SQL: Trace: <t 1494112526, conn 1933144889> batching prepstmnt
> 904345063 UPDATE CHILD SET MUT_TSTAMP = ?, MUT_VERSION = ?, PARENT_ID = ?
> WHERE ID = ? AND CHILD.MUT_VERSION = ? [params=(Timestamp) 2011-08-04
> 15:36:37.496, (int) 28, (long) 13260, (long) 328246, (int) 27]
> openjpa.jdbc.SQL: Trace: <t 1494112526, conn 1933144889> batching prepstmnt
> 904345063 UPDATE CHILD SET MUT_TSTAMP = ?, MUT_VERSION = ?, PARENT_ID = ?
> WHERE ID = ? AND CHILD.MUT_VERSION = ? [params=(Timestamp) 2011-08-04
> 15:36:37.496, (int) 28, (long) 13260, (long) 328247, (int) 27]
> openjpa.jdbc.SQL: Trace: <t 1494112526, conn 1933144889> batching prepstmnt
> 904345063 UPDATE CHILD SET MUT_TSTAMP = ?, MUT_VERSION = ?, PARENT_ID = ?
> WHERE ID = ? AND CHILD.MUT_VERSION = ? [params=(Timestamp) 2011-08-04
> 15:36:37.496, (int) 28, (long) 13260, (long) 328232, (int) 27]
> openjpa.jdbc.SQL: Trace: <t 1494112526, conn 1933144889> batching prepstmnt
> 904345063 UPDATE CHILD SET MUT_TSTAMP = ?, MUT_VERSION = ?, PARENT_ID = ?
> WHERE ID = ? AND CHILD.MUT_VERSION = ? [params=(Timestamp) 2011-08-04
> 15:36:37.496, (int) 28, (long) 13260, (long) 328233, (int) 27]
> openjpa.jdbc.SQL: Trace: <t 1494112526, conn 1933144889> batching prepstmnt
> 904345063 UPDATE CHILD SET MUT_TSTAMP = ?, MUT_VERSION = ?, PARENT_ID = ?
> WHERE ID = ? AND CHILD.MUT_VERSION = ? [params=(Timestamp) 2011-08-04
> 15:36:37.496, (int) 28, (long) 13260, (long) 328234, (int) 27]
> openjpa.jdbc.SQL: Trace: <t 1494112526, conn 1933144889> batching prepstmnt
> 904345063 UPDATE CHILD SET MUT_TSTAMP = ?, MUT_VERSION = ?, PARENT_ID = ?
> WHERE ID = ? AND CHILD.MUT_VERSION = ? [params=(Timestamp) 2011-08-04
> 15:36:37.496, (int) 28, (long) 13260, (long) 328235, (int) 27]
> openjpa.jdbc.SQL: Trace: <t 1494112526, conn 1933144889> batching prepstmnt
> 904345063 UPDATE CHILD SET MUT_TSTAMP = ?, MUT_VERSION = ?, PARENT_ID = ?
> WHERE ID = ? AND CHILD.MUT_VERSION = ? [params=(Timestamp) 2011-08-04
> 15:36:37.496, (int) 28, (long) 13260, (long) 328236, (int) 27]
> openjpa.jdbc.SQL: Trace: <t 1494112526, conn 1933144889> batching prepstmnt
> 904345063 UPDATE CHILD SET MUT_TSTAMP = ?, MUT_VERSION = ?, PARENT_ID = ?
> WHERE ID = ? AND CHILD.MUT_VERSION = ? [params=(Timestamp) 2011-08-04
> 15:36:37.496, (int) 28, (long) 13260, (long) 328237, (int) 27]
> openjpa.jdbc.SQL: Trace: <t 1494112526, conn 1933144889> executing batch
> prepstmnt 904345063 UPDATE CHILD SET MUT_TSTAMP = ?, MUT_VERSION = ?,
> PARENT_ID = ? WHERE ID = ? AND CHILD.MUT_VERSION = ? [params=(Timestamp)
> 2011-08-04 15:36:37.496, (int) 28, (long) 13260, (long) 328237, (int) 27]
> openjpa.jdbc.JDBC: Trace: ExecuteBatch command returns update success count
> 12
> openjpa.jdbc.JDBC: Trace: ExecuteBatch command returns update count -2 for
> statement UPDATE CHILD SET MUT_TSTAMP = ?, MUT_VERSION = ?, PARENT_ID = ?
> WHERE ID = ? AND CHILD.MUT_VERSION = ?.
> openjpa.jdbc.JDBC: Trace: ExecuteBatch command returns update count -2 for
> statement UPDATE CHILD SET MUT_TSTAMP = ?, MUT_VERSION = ?, PARENT_ID = ?
> WHERE ID = ? AND CHILD.MUT_VERSION = ?.
> openjpa.jdbc.JDBC: Trace: ExecuteBatch command returns update count -2 for
> statement UPDATE CHILD SET MUT_TSTAMP = ?, MUT_VERSION = ?, PARENT_ID = ?
> WHERE ID = ? AND CHILD.MUT_VERSION = ?.
> openjpa.jdbc.JDBC: Trace: ExecuteBatch command returns update count -2 for
> statement UPDATE CHILD SET MUT_TSTAMP = ?, MUT_VERSION = ?, PARENT_ID = ?
> WHERE ID = ? AND CHILD.MUT_VERSION = ?.
> openjpa.jdbc.JDBC: Trace: ExecuteBatch command returns update count -2 for
> statement UPDATE CHILD SET MUT_TSTAMP = ?, MUT_VERSION = ?, PARENT_ID = ?
> WHERE ID = ? AND CHILD.MUT_VERSION = ?.
> openjpa.jdbc.JDBC: Trace: ExecuteBatch command returns update count -2 for
> statement UPDATE CHILD SET MUT_TSTAMP = ?, MUT_VERSION = ?, PARENT_ID = ?
> WHERE ID = ? AND CHILD.MUT_VERSION = ?.
> openjpa.jdbc.JDBC: Trace: ExecuteBatch command returns update count -2 for
> statement UPDATE CHILD SET MUT_TSTAMP = ?, MUT_VERSION = ?, PARENT_ID = ?
> WHERE ID = ? AND CHILD.MUT_VERSION = ?.
> openjpa.jdbc.JDBC: Trace: ExecuteBatch command returns update count -2 for
> statement UPDATE CHILD SET MUT_TSTAMP = ?, MUT_VERSION = ?, PARENT_ID = ?
> WHERE ID = ? AND CHILD.MUT_VERSION = ?.
> openjpa.jdbc.JDBC: Trace: ExecuteBatch command returns update count -2 for
> statement UPDATE CHILD SET MUT_TSTAMP = ?, MUT_VERSION = ?, PARENT_ID = ?
> WHERE ID = ? AND CHILD.MUT_VERSION = ?.
> openjpa.jdbc.JDBC: Trace: ExecuteBatch command returns update count -2 for
> statement UPDATE CHILD SET MUT_TSTAMP = ?, MUT_VERSION = ?, PARENT_ID = ?
> WHERE ID = ? AND CHILD.MUT_VERSION = ?.
> openjpa.jdbc.JDBC: Trace: ExecuteBatch command returns update count -2 for
> statement UPDATE CHILD SET MUT_TSTAMP = ?, MUT_VERSION = ?, PARENT_ID = ?
> WHERE ID = ? AND CHILD.MUT_VERSION = ?.
> openjpa.jdbc.JDBC: Trace: ExecuteBatch command returns update count -2 for
> statement UPDATE CHILD SET MUT_TSTAMP = ?, MUT_VERSION = ?, PARENT_ID = ?
> WHERE ID = ? AND CHILD.MUT_VERSION = ?.
>
> --
> View this message in context:
> http://openjpa.208410.n2.nabble.com/Version-of-all-children-is-incremented-in-OneToMany-when-merging-parent-entity-tp6645128p6652752.html
> Sent from the OpenJPA Users mailing list archive at Nabble.com.
>



-- 
*Rick Curtis*

Reply via email to