DAO, сервисный слой зачем - PullRequest
       53

DAO, сервисный слой зачем

0 голосов
/ 19 февраля 2020

зачем эти два слоя? Почему мы должны выполнять dao-метод в сервисе? Почему мы должны использовать @Transactional только в полях метода Service. Почему мы не можем использовать @Transactional непосредственно для методов dao и не используем сервисы?

1 Ответ

1 голос
/ 20 февраля 2020

, поскольку существует много способов управления транзакциями, которые называются транзакциями. Распространение

TransactionDefinition.PROPAGATION_MANDATORY: поддерживает текущую транзакцию; выдает исключение, если текущая транзакция не существует.

TransactionDefinition.PROPAGATION_NESTED: Выполняется во вложенной транзакции, если текущая транзакция существует.

TransactionDefinition.PROPAGATION_NEVER: не поддерживает текущую транзакцию; выдает исключение, если текущая транзакция существует.

TransactionDefinition.PROPAGATION_NOT_SUPPORTED: не поддерживает текущую транзакцию; скорее всегда выполняется нетранзакционно.

TransactionDefinition.PROPAGATION_REQUIRED: Поддерживает текущую транзакцию; создает новую, если ее не существует.

TransactionDefinition.PROPAGATION_REQUIRES_NEW: создает новую транзакцию, приостанавливая текущую транзакцию, если она существует.

TransactionDefinition.PROPAGATION_SUPPORTS: поддерживает текущую транзакцию; выполняется без транзакций, если их не существует.

TransactionDefinition.TIMEOUT_DEFAULT: использует тайм-аут по умолчанию для базовой системы транзакций или нет, если тайм-ауты не поддерживаются.

...