@transactional (readonly = true) против пружины @transaction mvc в спящем режиме - PullRequest
0 голосов
/ 31 января 2020

Я знаю об использовании и базовом c понимании как @transaction, так и @transaction (readOnly = true). Но в моем проекте в одном сервисе я использовал @transaction (readOnly = true) - >>, где он выполнял все операции CRUD. в то время как в моем другом сервисе он не позволил мне обновить таблицу. Я должен удалить «readOnly = true». Я просто не понимаю, как это позволяет в одном сервисе выполнять все операции, а в другом нет. Есть ли что-то, чего мне не хватает в базовом c понимании этой концепции.

1 Ответ

1 голос
/ 31 января 2020

Это только подсказка. Параметр readOnly не гарантирует его поведение, это всего лишь подсказка, которая может или не может быть принята во внимание. Источник
Это просто подсказка для подсистема фактических транзакций; это не обязательно приведет к сбою попыток доступа для записи. Диспетчер транзакций, который не может интерпретировать подсказку только для чтения, не будет выдавать исключение при запросе транзакции только для чтения, а просто молча игнорирует подсказку.
он тесно связан с настройкой распространения. Например: для SUPPORT флаг readOnly никогда не будет использоваться; для REQUIRES_NEW всегда; для ОБЯЗАТЕЛЬНЫХ это зависит от того, находимся ли мы уже в транзакционном контексте или нет, и т. д. c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...