Почему бы нам не сделать Spring MVC контроллер @Transactional?

Уже есть несколько вопросов по этой теме, но ни один ответ на самом деле не дает аргументов, объясняющих, почему мы не должны делать контроллер Spring MVCTransactional, Увидеть:

Транзакция работает неправильно - Spring / MyBatis

Для веб-приложения MVC Spring @Transactional должен идти на контроллере или сервисе?

Создание Spring 3 MVC контроллера метода Транзакционный

Spring MVC Controller Транзакционный

Итак, почему?

Естьнепреодолимый Технические неисправности?Есть ли архитектурные проблемы?Есть ли проблемы с производительностью / тупиком / параллелизмом?Иногда требуется несколько отдельных транзакций? Если да, каковы варианты использования? (Мне нравится упрощенный дизайн, при котором запросы к серверу либо полностью успешны, либо полностью терпят неудачу. Это звучит как очень стабильное поведение)

Предыстория: я работал несколько лет назад в команде над довольно большим программным обеспечением ERP, реализованным в C # / NHibernate / Spring.Net. Обход к серверу был точно реализован так: транзакция была открыта до ввода любой логики контроллера и была зафиксирована или откатана после выхода из контроллера. Транзакция управлялась в рамках так, чтобы никто не заботился об этом.Это было блестящее решение: стабильное, простое, только несколько архитекторов должны были заботиться о проблемах транзакций, остальная часть команды просто реализовала функции.

С моей точки зрения, это лучший дизайн, который я когда-либо видел. Когда я попытался воспроизвести тот же дизайн в Spring MVC, я попал в кошмар с проблемами отложенной загрузки и транзакций, и каждый раз отвечал один и тот же: не делать контроллер транзакционным, но почему?

Заранее благодарю за обоснованные ответы!

Ответы на вопрос(3)

Ваш ответ на вопрос