Spojrzałem na kod źródłowy Controller.groovy
i wygląda na to, że operacje CRUD nie są transakcyjne (przynajmniej jawnie).Czy rusztowanie graal jest w jakikolwiek sposób transakcyjne?
Jeśli mam rację, czy oznacza to, że dynamiczne rusztowanie nie powinno być używane w produkcji tak jak jest? Czy istnieje sposób, aby uczynić go transakcyjnym (tzn. Czy mogę zmodyfikować Controller.groovy
lub coś podobnego?)?
Chociaż jest to technicznie poprawne, wykonywanie transakcji w kontrolerze nie jest najlepszą praktyką. Wszystkie transakcje powinny być wykonywane w ramach Usługi. Użyj rusztowania lekko. Nie wkładaj kodu rusztowania do produkcji. – Gregg
Nie zgadzam się z tym, że w przypadku rusztowań istnieje coś złego lub nie jest ono gotowe do produkcji. Korzystając z rusztowania (nie zakładam, że jest gotowe do użycia, ale wprowadzono pewne modyfikacje). Rusztowanie daje ogromną wygraną w utrzymywaniu i, jeśli w ogóle, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ – cdeszaq
Transakcje w warstwie usług to najlepsza praktyka, ale nie przenosiłbym operacji CRUD do usługi wyłącznie dla transakcji. Ponadto, rusztowanie jest skutecznym sposobem zapewnienia prostego interfejsu CRUD dla np. administracja z minimalnym kodem i nakładem pracy i jest odpowiednia dla szerokiej gamy aplikacji. – ataylor