Где использовать аннотацию @Transactional и аннотацию @Repository - PullRequest
0 голосов
/ 24 октября 2018

Некоторые примеры в Интернете используют аннотацию @Transactional о методах реализации DAO, а некоторые используют эту аннотацию для методов уровня обслуживания.Где более уместно поставить @Transactional и почему?

Точно так же, где поставить @Repository аннотацию.На интерфейсе DAO или на реализации DAO?

1 Ответ

0 голосов
/ 24 октября 2018

Я всегда использовал аннотации @Service и @Repository в своих реализациях, но их можно поместить в любую из них.Хотя размещение его в интерфейсе будет означать, что вы не сможете иметь более одной реализации, поскольку вы получите ошибку NoUniqueBeanDefinitionException.

В случае @Transactional это зависит от того,но обычно это идет на службу.Если вы хотите иметь возможность добавлять различные вызовы БД для одной транзакции, то она должна идти в сервис.Если вы хотите совершать небольшие транзакции, тогда лучше использовать DAO, но тогда вы не сможете изменить несколько таблиц за одну транзакцию.Другой недостаток наличия этого в DAO - то, что вы не сможете откатить несколько модификаций, только те, которые выполняются DAO.

...