Jak radzić sobie z transakcjami jeśli używamy Eithera z Vavr? Załóżmy, że w naszym serwisie korzystamy z jakiegoś innego serwisu, który zamiast rzucać wyjątki zwraca jakiś Either<AppError/Exception, DTO> no i jeśli zwróci ten AppError czy nawet Exception to chcielibyśmy, żeby nastąpił rollback. Zakładam też, że raczej używamy Springa i JPA. Pytanie w szczególności do @jarekr000000.

- Rejestracja:ponad 8 lat
- Ostatnio:około 3 godziny
- Lokalizacja:U krasnoludów - pod górą
- Postów:4708
Jeżeli używamy Springa i JPA to zabawa w Either
traci dużo z sensu.
Zabawa w Exceptiony i rollbacki w springu/jpa jest pełna absurdów i pułapek i Either
nic w tym nie pomaga, a nawet przeszkadza.
- Rejestracja:ponad 3 lata
- Ostatnio:ponad 2 lata
- Postów:94
jarekr000000 napisał(a):
Jeżeli używamy Springa i JPA to zabawa w
Either
traci dużo z sensu.
Zabawa w Exceptiony i rollbacki w springu/jpa jest pełna absurdów i pułapek iEither
nic w tym nie pomaga, a nawet przeszkadza.
A masz gdzieś kod do tej transakcji w formie monady?

- Rejestracja:ponad 8 lat
- Ostatnio:około 3 godziny
- Lokalizacja:U krasnoludów - pod górą
- Postów:4708
Sampeteq napisał(a):
A masz gdzieś kod do tej transakcji w formie monady?
Mam w kotlinie,
ale w javie to brałem z blogów i sobie rozwijałem:
https://gtrefs.github.io/code/refactoring-towards-a-transaction-monad/
Przy czym zupełnie niezależna lekcja - warto wywalić JPA i przejść na JOOQ lub JDBI.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.