В соответствии с базой данных или системой Hibernate, границы транзакций всегда необходимы.Никакой связи с базой данных не может происходить вне транзакции базы данных (это, кажется, сбивает с толку многих разработчиков, которые привыкли к режиму автоматической фиксации). Всегда используйте четкие границы транзакций, даже для операций только для чтения .В зависимости от уровня изоляции и возможностей базы данных это может не потребоваться, , но не будет недостатка, если вы всегда четко разграничиваете транзакции .Конечно, одна транзакция базы данных будет работать лучше, чем многие небольшие транзакции, даже для чтения данных.
Вы можете ссылаться на документацию hibernate здесь.