Wyjątki, transakcje i Either

Wyjątki, transakcje i Either
SA
  • Rejestracja: dni
  • Ostatnio: dni
  • 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.

jarekr000000
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: U krasnoludów - pod górą
  • Postów: 4712
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.

SA
  • Rejestracja: dni
  • Ostatnio: dni
  • 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?

jarekr000000
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: U krasnoludów - pod górą
  • Postów: 4712
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.

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.