Reputation: 369
Just to verify - the exception is thrown from the commit()
isn't it?
PersistenceManager pm = PMF.get().getPersistenceManager();
try {
pm.currentTransaction().begin();
List<Row> Table = (List<Row>) pm.newQuery(query).execute();
Table.get(0).setReserved(true); // <----- we change only this element
pm.currentTransaction().commit();
} catch (JDOCanRetryException ex) {
pm.currentTransaction().rollback() // <----- if Table.get(1) was changed by another client do we get to this point???
}
Upvotes: 1
Views: 94
Reputation: 20930
1.) An exception will only be thrown if that entity is modified elsewhere during the transaction.
2.) Correct, the exception will be thrown when you commit.
You'll also have to call pm.makePersistent(Table.get(0))
to have it save your change.
Upvotes: 1