У вас всегда должна быть запущенная транзакция при использовании hibernate.
А вот что говорят документы о MANUAL
:
Этот режим очень эффективен для транзакций только для чтения.
Что касается разговоров - предполагается, что они охватывают более одного метода ( читайте здесь ). Поэтому я не думаю, что ваш пример должен быть в одном методе.
Как написано в статье, на которую я ссылаюсь, транзакция должна быть "единицей работы". Если вы считаете это необходимым, используйте новую транзакцию. Но будь уверен, что это необходимо. В противном случае - не совершайте несколько транзакций за один запрос.