Почему аннотацию @transactional не рекомендуется использовать с операцией выбора - PullRequest
0 голосов
/ 07 октября 2018

Я новичок в весне.

Почему аннотацию @transactional не рекомендуется использовать с операцией выбора?

Ответы [ 2 ]

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

Почему аннотацию @transactional не рекомендуется использовать с операцией выбора?

Не соответствует действительности, Вы не предоставили доказательства для такой рекомендации (просьба сделать) и в Spring @Transactional settings у вас есть поддержка транзакций выбора или только для чтения

readOnly  boolean  Read/write vs. read-only transaction

Также при использовании пула соединений, если вы не выполняете откат / коммит после оператора selectбудет рассматривать его как грязную фиксацию, например, см. комментарий Hikari's brettwooldridge

если autoCommit = false, вы обязательно должны вызвать commit () или rollback (), чтобы убедиться в правильности.

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

Операция выбора предназначена для чтения, в ней нет ничего транзакционного.Транзакционный обычно относится к объединению нескольких записей в БД в один атомарный блок.Если транзакция завершается неудачей, весь блок со всеми связанными записями откатывается.Таким образом, транзакция может быть успешной, только если все операторы в транзакции пройдут.

Операция выбора доступна только для чтения.Для выбора у вас могут быть такие вещи, как - «Чтение грязных» или «Чтение после фиксации» и т. Д., Но транзакция не применяется.

...