Wyjątki, transakcje i Either

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.

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.

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?

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1