これは実際のドキュメントにあるかもしれませんが、何も見つかりませんでしたのでここで安全です。ネストされたオブジェクト化されたトランザクションはアトミックなままですか - または動作しますか?
私は一種のオブジェクト指向を使用しているバックエンドを持っています。私は何をしたいのですか?私は活動で構成されたイベントプランを持っています。現在、私はイベントを削除する場合、私は実際にイベントプラン内の個々のアクティビティを削除するロジックをすべて記述していますdeleteメソッド。
私は、イベントプランの削除メソッドからアクティビティの削除メソッドを呼び出すと(これを行うことができれば)、それは原子ですか?
サンプル(これは単なる擬似コードである - 実際にはない - ケースとメソッドの名前が間違っている可能性があります):
// 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
}
}
を行うには、これは安全ですか?私がエンティティグループの問題を認識しなかったためです。アクティビティそのものと同じエンティティグループに属していなかったアクティビティには、これを修正した後でイベントプランのロジックの中で、削除が難しくなり、メソッドが扱いにくくなってきています。小さなものを分割したり、原子性を破ることはできますか?
は
おかげさま - 少しでも不幸なことがあっても分かることは間違いありません –
ええ、間違いなく挑戦します;)幸運を祈る! –