我有一个带有JSON REST API的GAE应用程序。对于每个实体,我都有一个带有物化代码的DAO类,以及一个使用DAO的服务。该服务负责与实体相关的业务逻辑。一些对API的调用预计会在整个服务中使用逻辑,即在多个服务中调用方法。针对某个请求的对象化事务处理的最佳做法
我希望对API的每次调用都是一个事务,即或者所有数据存储操作都成功并保留,或者如果发生异常,则所有数据存储操作都会失败并且它们都不会被保留。 我可以看到,如果我做了两个单独的of()。transact(...)并在它们之间引发异常,那么第一个ofy.transact()的操作会持续存在,但不会是第二个。如果我执行了一个ofy().transact()并且在这里执行一个数据存储操作,然后抛出一个异常并执行第二个数据存储操作,那么这些操作都不会被持久化。 从这里我假设只有在ofy()。transact()内引发异常时才会发生回滚。
我的问题是: 如果我有一个跨服务的API调用,我需要在ofy()。transact中封装对服务的调用,以确保发生异常时的回滚? 我想在DAO类中保留所有对象的使用,所以另一种解决方案会很棒。
感谢, -Louise