Откат транзакции в контроллере Spring MVC - PullRequest
3 голосов
/ 09 августа 2011

У меня есть контроллер Spring MVC, помеченный @Transaction, и при определенных входных данных мне нужно откатить транзакцию.

Как я понимаю, правильный способ вызвать откат - вызвать исключение изконтроллер.

Но если я сгенерирую исключение из контроллера, у меня не будет возможности вернуть объект ModelAndView из контроллера.

Как я могу вызвать откат вконтроллер, все еще предоставляя ModelAndView для визуализации?

Ответы [ 2 ]

2 голосов
/ 09 августа 2011

Во-первых, я не думаю, что использование @Transaction в методах контроллера - это хорошо. Лучше хранить транзакционную логику на «уровне обслуживания» и использовать там аннотацию @Transaction.

Но если вы все еще хотите использовать @Transaction на контроллере, взгляните на org.springframework.web.servlet.handler.SimpleMappingExceptionResolver

2 голосов
/ 09 августа 2011

Исключениями являются подходящие маршруты. Spring может отображать исключения для представлений . Это, вероятно, то, что вы хотите сделать.

...