繁体   English   中英

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

[英]What is the best way to provide transaction operation if I use graphql

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

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

谢谢!

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

如果您在单个请求中执行多个更改,则它们始终是串行执行的。 在这种情况下,您可以在开始 GraphQL 处理时(例如在控制器或 servlet 或检测中)简单地打开事务,并在收到结果(或异常)后关闭它。 所以事务管理是围绕GraphQL 执行的,但在它之外。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM