GAE Entity Groups / Транзакция - PullRequest
       6

GAE Entity Groups / Транзакция

0 голосов
/ 09 апреля 2010

Скажем, у вас есть объект "Карта покупателя" и объект продукта. Когда клиент выбирает опцию покупки, вы создаете объект, а затем добавляете товар. Он должен быть транзакционным, но не в той же группе сущностей, что и продукт, и карта уже была сохранена, не так ли? Есть ли способ безопасно и легко преодолеть этот простой сценарий?

вот пример кода:

Transaction tx = pm.currentTransaction();
tx.begin();
Product prod = pm.getObjectById(Product.class, "TV");
prod.setReserved(true);
pm.makePersistent(prod);

Card card = pm.getObjectById(Card.class, "user123");   /// <--- will thorw an exception as card and prod aren't on the same entity group
card.setProd(prod);
pm.makePersistent(card);
try {
    tx.commit();
    break;
}

1 Ответ

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

Этот пост может быть полезен: http://blog.notdot.net/2009/9/Distributed-Transactions-on-App-Engine

(Хотя примеры приведены на Python, концепция точно такая же)

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