V MVC mají být transakce na jaké úrovni? rubrika: Návrh
Pokud pracuji s databází, kde má být START TRANSACTION a COMMIT v MVC architektuře? Osobně si myslím, že na úrovni controlleru, protože některé metody modelu chci používat samostatně, některé chci spojovat jak v controlleru, tak v jiných modelech.
Když se ale kouknu třeba na Grails, tak ty automaticky dávají, že všechny metody modelu (Service) jsou transakční.
Na které úrovni děláte transakce vy a proč?
Jedina vrstva ktera by mela resit transakce je Servisni (services) ani kontroler ani repository. Kontroler je jednoducha komponenta ktera pouze vola servisni metody nic jineho (jeste formalni validace). Repositry je take jednoducha komponenta ktera resi poskytovani/ukladani data nic jineho. Service vrstva by mela znat pouze jako jedina bussines logiku kterou je potreba vykonat pro dany use case, repository prebiraji transakci od servisni tridy. Zalozeni, rollback, commit si resi servisni vrstva.
Pro zobrazení všech 11 odpovědí se prosím přihlaste:
Nebo se přihlaste jménem a heslem:
Komentáře