Objectify 4 では、トランザクション内で制御された例外をスローしようとしています。vrun() インターフェイスは例外のスローを許可しないため、キャッチする必要があります。私はそれを実行してから、ロールバックを実行したいのですが、トランザクションが終了してすべてが失敗すると (コミットしようとしたためだと思います)、ロールバックすら実行しません。どうすればいいですか?
前もって感謝します!
コード例:
ofy().transact(new VoidWork() {
@Override
public void vrun() {
//do something
//...
//find someting wrong and want to throw an exception
try {
throw new MyException(); //throw the exception
} catch (MyException e) {
ofy().getTransaction().rollback(); //catch it and perform rollback
}
}
});
//an error occurs