【问题标题】:Spring transactions with Objectify and Appengine使用 Objectify 和 Appengine 的 Spring 事务
【发布时间】:2012-01-20 11:06:44
【问题描述】:

我正在使用带有 Objectify 的 appengine 来访问我的数据源。我将 Spring 用于我的业务层。为了处理数据,我使用了objectify-appengine-spring factory

我想使用基于注释的本地事务。你知道我可以直接作为 Spring bean 插入的现有实现吗?

我真的很想避免使用线程局部变量实现我自己的事务提供程序的痛苦。

【问题讨论】:

    标签: spring google-app-engine transactions google-cloud-datastore objectify


    【解决方案1】:

    查看 LushLife 的 ObjectifyTransactionManager herehere

    需要 Spring XML 配置(您可以找到它herehere):

    <!-- 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 注释您的事务方法或类。

    特别感谢project的作者。

    【讨论】:

    • 哦!有趣;)你能发布一个配置(xml)和使用事务管理器的例子吗?
    • 我正在搜索如何集成 spring 和 objectify 并找到了这个 TransactionManager(它不是我的!)。浏览项目的源代码,您可以看到它与任何其他项目一样使用,使用经典的 Spring @Transactional 支持方法。我将用这些信息更新我的答案。
    • 为巴萨效力? o força catalunya ? :P
    【解决方案2】:

    我猜该解决方案仅适用于 Objectify3。

    我可以在 Spring AOP + Objectify4 事务中使用事务属性(MANDATORY、REQUIRED 等)的任何解决方案 - XML 或 Annotation?

    此外,Objectify4 的 API 文档仍然提到使用 ObjectifyFactory 方法 beginTransaction() 我猜它不再可用。它给初学者带来了困惑。如果更新文档以反映最新行为会更有用。我希望我没有遗漏任何东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多