Транзакция в Hibernate
Добрый день! Надо ли начинать транзакцию при поиске сущности в базе данных (get(...), load(...))? По сути транзакция не будет иметь здесь смысла. Так?
Добрый день! Надо ли начинать транзакцию при поиске сущности в базе данных (get(...), load(...))? По сути транзакция не будет иметь здесь смысла. Так?
Если запрос к БД это фактически только SQL select
, то оборачивание запроса транзакциями лишено смысла, с одним небольшим уточнением:
Если перед запросом вы не пытаетесь изменить уровень изоляции транзакций. По умолчанию уровень изоляции транзакций обычно установлен в READ_COMITTED
, то есть будут видимы записи, по которым уже прошел коммит.
В некоторых случаях для ускорения запросов можно пробовать установить уровень изоляции транзакций READ_UNCOMITTED
(чтение незавершенных транзакций) или наоборот ужесточить требование к изоляции установкой READ_SERIALIZABLE
(чтение только сохраненных транзакций).
Так вот в этом случае нужно оборачивать `select' транзакциями. Во всех остальных случаях это не имеет смысла.