Wyjątki, transakcje i Either

Wyjątki, transakcje i Either
SA
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad 2 lata
  • Postów:94
0

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.

edytowany 1x, ostatnio: cerrato
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 3 godziny
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4708
1

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.


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 2x, ostatnio: jarekr000000
SA
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad 2 lata
  • Postów:94
0
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 i Either nic w tym nie pomaga, a nawet przeszkadza.

A masz gdzieś kod do tej transakcji w formie monady?

edytowany 1x, ostatnio: Sampeteq
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 3 godziny
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4708
1
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.


jeden i pół terabajta powinno wystarczyć każdemu

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.