【问题标题】:What is the best way to provide transaction operation if I use graphql如果我使用 graphql,提供事务操作的最佳方式是什么
【发布时间】:2018-05-06 21:19:08
【问题描述】:

如果我需要在事务中改变多个变量,最好的方法是什么?

据我了解,grapQL 将在幕后依次发出单独的变异命令。我需要做什么才能使其具有事务性?

谢谢!

【问题讨论】:

    标签: graphql graphql-java


    【解决方案1】:

    这是执行多个数据库操作的单个突变吗?如果是这样,您的变异解析器应该执行所有操作,因此它可以管理事务本身:打开、执行多个操作、关闭。

    如果您在单个请求中执行多个突变,它们总是按顺序执行。在这种情况下,您可以在启动 GraphQL 处理时(例如在控制器或 servlet 或仪器中)简单地打开事务,并在收到结果(或异常)后关闭它。所以事务管理围绕 GraphQL 执行,但在它之外。

    如果您只希望请求中的某些操作以事务方式执行而不是其他操作,那么您已经处于最好留给框架的领域。使用 Spring 的事务管理之类的东西,让它处理正确的生命周期。

    另一方面,如果您尝试实现跨越多个不同请求的事务,那么这确实不是您应该做的事情,出于多种原因,极其复杂的事务管理只是其中之一。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-17
      • 2012-12-22
      • 1970-01-01
      • 1970-01-01
      • 2017-04-29
      • 2022-01-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多