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.

Reply via email to