Transakcje - gdzie je umieścić

0

Cześć.

Piszę aplikację opartą o MVC, ale bez ORM. Mam, więc GUI, BLL oraz DAL.
W bardziej skomplikowanych operacjach na bazie danych powinienem używać transakcji.
Metody Begin i End w kontekście transakcji umieściłem w klasie obsługującej połączenie do bazy danych. Jednak w którym miejscu powinienem wywołać te metody? Czy to powinno być w controllerze, a może w DAL-cach?

0

Jednak w którym miejscu powinienem wywołać te metody?

Samemu? W ogóle ich nie wywołuj. Powiedz jakiemuś kontenerowi IoC, żeby to zrobił za Ciebie na początku requesta/wywołania metody serwisowej i zamknął transakcje jak się request/metoda skończy.

0

Tak, tylko ta metoda serwisowa powinna być w controllerze i tam powinienem pobrać dane do otwarcia i zamknięcia transakcji z kontenera, czy może mówiąc metoda serwisowa rozumiesz metodę w DAL?

1

No.. metoda serwisowa powinna być w serwisie. Serwis powinien być w BLL. :|
Tu masz na przykład pokazane jak to w Javie wygląda: http://www.javacodegeeks.com/2012/09/spring-dao-and-service-layer.html (zwróć uwagę na adnotacje @Transactional i tu masz trochę szerzej jak jesteś ciekawski: http://docs.spring.io/spring/docs/current/spring-framework-reference/html/transaction.html).

0

Dziękuję. Tak właśnie czułem, że w tą stronę muszę iść. Bardzo mi pomogłeś.

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