【发布时间】:2011-03-22 02:41:20
【问题描述】:
在 App Engine 数据存储区中执行事务 (JDO) 有两种不同的方式。
方法一:使用PersistenceManager
try {
pm.currentTransaction().begin();
// do stuff
pm.currentTransaction().commit();
}
finally {
if (pm.currentTransaction().isActive())
pm.currentTransaction().rollback();
}
方法二:使用DatastoreService
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService()
try {
Transaction txn = datastore.beginTransaction();
// do stuff
txn.commit();
}
finally {
if (txn.isActive()) {
txn.rollback();
}
}
这两种方法的功能区别是什么?
【问题讨论】:
-
我相信这本质上是stackoverflow.com/questions/4242524/…的复制品
-
附带说明,我相信在您的两个示例中,您应该将“开始”语句放在 try-finally 之外。在“开始”成功返回之前,您实际上并没有活跃的事务。
-
这不是那个问题的重复。这两个代码块做的事情完全相同
标签: java google-app-engine google-cloud-datastore jdo