Где должно быть «@Transactional» вместо Service Layer или DAO

Во-первых, возможно, что я спрашиваю о чем-то, о чем уже спрашивали и на что отвечал, но мне не удалось получить результат поиска обратно. Хорошо, в целом (или всегда пока :)). Мы определяем транзакционные аннотации на уровне сервиса. Типичный Spring hibernate crud обычно

Controller-> Manager-> Dao-> Orm.

Теперь у меня возникла ситуация, когда мне нужно выбрать между моделью домена на основе клиентского сайта. Скажем, клиент A использует мою модель домена, все в порядке, но тогда другой клиентский сайт предоставит мне веб-службу и не будет использовать нашу модель домена.

Какой уровень я должен заменить. Я считаю, что это должен быть DAO, который будет получать мне данные из веб-службы и отправлять их обратно. Т.е. два отдельно написанных слоя DAO, подключенных в зависимости от сценария.

Теперь я понял, что мы делаем жесткую связь (если есть такая вещь или скажем, не имеющая слабой связи), когда мы помещаем @Transactional на уровень обслуживания. Столько мозгов не может ошибаться или они (я сомневаюсь).

Итак, вопрос: "Где должен" @Transactional "быть уровень сервиса или DAO?" и это уровень обслуживания, который я должен заменить.

77
задан ModernSlave 20 September 2019 в 17:15
поделиться