我有一个关于 objectify 的快速问题 - 这可能在实际文档中,但我没有找到任何东西,所以我在这里要求安全。
我有一个使用 objectify 的后端,我有点冲出去 - 我想做的是以下 - 我有一个由活动组成的活动计划。目前,如果我删除一个事件,我实际上是在编写所有逻辑来删除事件计划删除方法中的各个活动。
我想知道的是,如果我从事件计划删除方法中调用活动删除方法(如果它允许我这样做),它是原子的吗?
示例(这只是伪代码 - 不是实际的 - 案例和方法名称可能是错误的):
// inside event plan dao
public void delete(EventPlan eventPlan) {
final Objectify ofy = Objectify.beginTransaction();
try {
final ActivityDAO activityDao = new ActivityDAO();
for (final Activity activity : eventPlan.getActivities()) {
activityDao.delete(activity);
}
ofy.getTxn().commit();
} finally {
if (ofy.getTxn().isActive()) {
ofy.getTxn().rollback();
|
}
}
// inside activity dao
public void delete(Activity activity) {
final Objectify ofy = Objectify.beginTransaction();
try {
// do some logic in here, delete activity and commit txn
} finally {
// check and rollback as normal
}
}
这样做安全吗?- 就像现在一样,它如此混乱的原因是因为我没有意识到实体组问题 - 活动中的某些东西与活动本身不在同一个实体组中 - 在修复这个之后我把所有事件计划删除中的逻辑和方法变得难以管理 - 可以将东西分解成更小的部分还是会破坏原子性。
谢谢你