GAE транзакции исключения - PullRequest
       6

GAE транзакции исключения

1 голос
/ 01 апреля 2010
  1. В этом примере генерируется исключение, если какой-либо из элементов таблицы изменяется другим клиентом или только если измененный нами элемент был изменен другим клиентом?
  2. Просто для проверки - исключение выдается из commit() не так ли?

    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??? 
    }
    

1 Ответ

1 голос
/ 01 апреля 2010

1.) Исключение будет выдано только в том случае, если этот объект изменен в другом месте во время транзакции.

2.) Правильно, исключение будет выдано при фиксации.

Вам также придется позвонить pm.makePersistent(Table.get(0)), чтобы сохранить изменения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...