2017-11-23 1 views

Antwort

0

Ist dies eine einzelne Mutation, die mehrere DB-Operationen durchführt? Wenn dies der Fall ist, wird erwartet, dass Ihr Mutations-Resolver alle Operationen ausführt, damit er die Transaktion selbst verwalten kann: Öffnen, mehrere Operationen ausführen, schließen.

Es gibt derzeit keine standardmäßige Möglichkeit, mehrere Mutationen in einer Anfrage auszuführen. Es gibt a proposition, um mehrere Top-Level-Operationen zu aktivieren (und denken Sie daran: Mutationen sind immer Top-Level Operationen) auf einmal, aber es ist nicht in der Spezifikation (noch). Graphql-Java kann dies jedoch bereits unterstützen. In diesem Fall können Sie die Transaktion einfach öffnen, wenn Sie die GraphQL-Verarbeitung starten (z. B. im Controller oder Servlet), und sie schließen, sobald Sie das Ergebnis (oder eine Ausnahme) erhalten haben. So ist das Transaktionsmanagement um GraphQL Ausführung, aber außerhalb davon.

Wenn Sie andererseits versuchen, eine Transaktion zu implementieren, die mehrere verschiedene Mutationsvorgänge umfasst, bedeutet dies mehrere unterschiedliche Anforderungen (denken Sie daran, eine Operation auf höchster Ebene pro Anforderung und Mutationen sind immer auf oberster Ebene). Und das ist wirklich nicht etwas, was Sie tun sollten, aus vielen Gründen, übermäßig lange Transaktionen, die nur eins sind.

Verwandte Themen