我可以这样做吗?即使我没有使用ds.get(tx, key)
和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);
}
}
答案 0 :(得分:0)
我不习惯Guice,但是和其他任何依赖注入框架一样,我想你必须在模块配置中声明某种TransactionManager吗? 在这种情况下,哪些不存在,或者至少没有Google做广告。 也许你会在社区中找到你需要的东西,看看GitHub ......但我再次高度怀疑Guice是否支持低级数据存储的开箱即用。 你可能在Guice中有一些JPA支持吗?
或者您可以开发自己的事务管理器...... 我用Spring开发了自己的@DatastoreTransactional注释,但遗憾的是在生产运行时使用Spring AOP失败,请参阅: Using Spring AOP on App Engine causes StackOverflowError