Google App Engine 数据存储区事务的两种不同方法 - 使用哪一种?
在 App Engine 数据存储区中执行事务 (JDO) 有两种不同的方法。
方法 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();
}
}
这两种方法之间的功能差异是什么?
There are two different ways to perform transactions (JDO) in the App Engine datastore.
Method 1: Use PersistenceManager
try {
pm.currentTransaction().begin();
// do stuff
pm.currentTransaction().commit();
}
finally {
if (pm.currentTransaction().isActive())
pm.currentTransaction().rollback();
}
Method 2: Use DatastoreService
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService()
try {
Transaction txn = datastore.beginTransaction();
// do stuff
txn.commit();
}
finally {
if (txn.isActive()) {
txn.rollback();
}
}
What is the functional difference between these two approaches?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我相信 JDO 本身使用低级 DatastoreService API 进行事务处理。
如果您使用 JDO 来处理对象,则应该使用它的 (JDO/JPA) 持久性管理器事务方法。否则,您的对象将如何持久保存到底层数据存储中?
I believe that JDO in itself uses the low level DatastoreService APIs for transaction handling.
If you are using JDO to work with objects, you should use it's (JDOs/JPAs) persistence managers transaction methods. Otherwise, how would your objects be persisted to the underlying datastore?