【发布时间】:2015-12-13 19:46:55
【问题描述】:
我有一个由用户组成的 KIND:
USER
username<Key,String>
friends <array of strings>
两个用户可以成为朋友(用户可以有很多朋友)。如果用户是朋友,则他们的两个用户名都在彼此的“朋友”属性中。因此,如果他们成为朋友,我需要将每个用户名插入到两个实体中,并保证它们都被插入,如果出现错误或其他情况,则应回滚(全有或全无操作)。从我的理解交易中读取 Google Datastore 内部的交易只能在实体组内完成。由于它们是两个 USER 实体,因此它们两者之间没有父/子关系,它们都是根实体。保证此操作通过的最佳方法是什么。如果用户被删除,同样的情况也适用,然后我需要从所有与被删除用户成为朋友的用户的所有 fiends 属性中删除该用户,我必须保证这一点。
【问题讨论】:
标签: google-app-engine transactions google-cloud-datastore