Google App Engine 数据存储区事务的两种不同方法 - 使用哪一种?

发布于 2024-10-25 20:21:54 字数 661 浏览 2 评论 0原文

在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浮云落日 2024-11-01 20:21:54

我相信 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?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文