使用Objectify和Appengine的Spring事务处理

6
我正在使用appengine和Objectify来访问我的数据源。我使用Spring作为业务层。为了处理数据,我使用objectify-appengine-spring工厂
我想使用基于注释的本地事务。您知道是否存在现有的实现,可以直接作为Spring bean插入吗?
我真的很想避免实现自己的事务提供程序并使用线程局部变量。
2个回答

3
请查看LushLife的ObjectifyTransactionManager,您可以在此处查看或者这里
需要Spring XML配置(您可以在此处找到它:这里这里):
<!-- ObjectifyManager -->
<bean id="objectifyManager" class="ex.objectify.spring.ObjectifyManager">
        <property name="basePackage" value="gso.model" />
</bean>

<!-- ObjectifyFactoryBean -->
<bean id="objectifyFactory" class="ex.objectify.spring.ObjectifyFactoryBean">
        <property name="manager" ref="objectifyManager" />
</bean>

<!-- Custom TransactionManager implementation -->
<bean id="transactionManager" class="ex.objectify.spring.ObjectifyTransactionManager">
        <property name="manager" ref="objectifyManager" />
</bean>

<!-- Necesary to enable use of @Transactional in your services -->
<tx:annotation-driven />

不要忘记使用@Transactional为您的事务方法或类作注解。

特别感谢这个项目的作者。


哦!有趣啊 ;) 你能发布一个事务管理器配置(xml)和使用的示例吗? - Jordi P.S.
我正在搜索如何集成Spring和Objectify,并找到了这个TransactionManager(不是我的!)。浏览项目的源代码,你可以看到它像其他任何一个一样使用,使用经典的Spring @Transactional支持方法。我将用这些信息更新我的答案。 - jelies
1
强大的巴萨?强大的加泰罗尼亚?:P - Jordi P.S.

0

我猜这个解决方案只适用于Objectify3。

有没有任何解决方案可以在Spring AOP + Objectify4事务中使用事务属性(MANDATORY,REQUIRED等)- XML或注释?

此外,Objectify4的API文档仍然提到使用ObjectifyFactory方法beginTransaction(),我猜它已经不再可用了。这会让初学者感到困惑。如果文档更新以反映最新行为,将更有用。我希望我没有漏掉什么。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接