2

このようなことはできますか?ds.get(tx, key)and を使用しなくてもトランザクションになりds.put(tx, key)ますか?

public class MyClass {

    private final DatastoreService ds;

    @Inject
    public MyClass(DatastoreService ds) {
        this.ds = ds;
    }

    @Transactional
    public void plusOne() {
        Key someKey;
        Entity thing = ds.get(someKey);
        int newValue = thing.getProperty("prop") + 1;
        thing.setProperty("prop", newValue);
        ds.put(thing);
    }
}
4

1 に答える 1

0

私は Guice に慣れていませんが、他の依存性注入フレームワークと同様に、モジュール config である種の TransactionManager を宣言する必要があると思います。この場合、これは存在しないか、少なくとも Google によって宣伝されていませんでした。コミュニティで必要なものが見つかるかもしれません。GitHub をチェックしてください。あなたはおそらくGuiceでJPAをサポートしていますか?

または、独自のトランザクション マネージャーを開発することもできます... Spring で独自の @DatastoreTransactional アノテーションを開発しましたが、残念ながら本番環境のランタイムで Spring AOP を使用すると失敗します。次を参照してください: App Engine で Spring AOP を使用すると StackOverflowError が発生する

于 2014-03-18T10:00:32.430 に答える