AFAIK, aby usunąć te dodatkowe zapytania, usuń wszystkie modyfikatory do swojego @Transactional
adnotacje. Cena, jaką płacisz za ograniczenie poziomu izolacji do READ_COMMITED
jest to, że Hibernate będzie musiał wykonać dodatkowe zapytania, aby określić, czy baza danych jest w stanie zanieczyszczenia. W 90% przypadków te modyfikatory są niepotrzebne. Hibernate jest bardzo dobry w zapewnianiu, że Twoje dane będą czyste bez próby dodania tych ograniczeń.
Jeśli jest to absolutnie konieczne, aby upewnić się, że izolacja jest READ_COMMITTED
, nie możesz nic zrobić z dodatkowymi zapytaniami.
Przejście do StatelessSession
samo pozbycie się tych zapytań jest złym pomysłem z dokładnie tego powodu, który wskazałeś. Naprawdę, jedyny ważny powód, aby używać StatelessSession
służy do wstawiania dużych partii danych, o których wiesz, że nie zostaną odczytane podczas wstawiania.