Два разных метода для транзакций хранилища данных Google App Engine - какой использовать? - PullRequest
2 голосов
/ 22 марта 2011

Существует два разных способа выполнения транзакций (JDO) в хранилище данных App Engine.

Метод 1 : Использовать PersistenceManager

try {
   pm.currentTransaction().begin();
   // do stuff
   pm.currentTransaction().commit();
}
finally {
    if (pm.currentTransaction().isActive()) 
        pm.currentTransaction().rollback();
}

Метод 2 : Использовать DatastoreService

DatastoreService datastore = DatastoreServiceFactory.getDatastoreService()
try {
    Transaction txn = datastore.beginTransaction();
    // do stuff
    txn.commit();
}
finally {
    if (txn.isActive()) {
        txn.rollback();
    }
}

Какая функциональная разница между этими двумя подходами?

1 Ответ

1 голос
/ 22 марта 2011

Я считаю, что JDO сам по себе использует низкоуровневые API DatastoreService для обработки транзакций.

Если вы используете JDO для работы с объектами, вам следует использовать методы транзакций менеджеров персистентности (JDO / JPAs). Иначе как ваши объекты будут сохранены в базовом хранилище данных?

...