如果我使用graphql,提供事务操作的最佳方法是什么

时间:2017-11-23 02:02:51

标签: graphql graphql-java

如果我需要将多个变量变为事务的一部分,那么最好的方法是什么?

据我了解,grapQL会在场景后面发出单独的变异命令。我需要做些什么来使其成为交易性的?

谢谢!

1 个答案:

答案 0 :(得分:0)

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

目前还没有标准方法可以在一个请求中执行多个突变。有a proposition一次启用多个顶级操作(并记住:突变始终是顶级操作),但它不在规范中(尚未)。但是Graphql-java可能已经支持它了。在这种情况下,您可以在启动GraphQL处理时(例如在控制器或servlet中)打开事务,并在收到结果(或异常)后关闭它。因此,事务管理是围绕 GraphQL执行,但在它之外。

另一方面,如果您尝试实现跨越多个不同变异操作的事务,则意味着多个不同的请求(请记住,每个请求一个顶级操作,并且突变始终是顶级)。这真的不是你应该做的事情,原因很多,过长的交易只有一个。