AFAIK, abyste odstranili tyto přebytečné dotazy, odstraňte všechny své modifikátory do @Transactional
anotace. Cena, kterou platíte za omezení úrovně izolace na READ_COMMITED
je, že Hibernate bude muset provést dodatečné dotazy, aby zjistil, zda je databáze ve špatném stavu. V 90 % případů jsou tyto modifikátory zbytečné. Hibernate velmi dobře zajišťuje, že vaše data budou čistá, aniž byste se pokoušeli tato omezení přidat.
Pokud je naprosto nezbytné, abyste zajistili, že vaše izolace je READ_COMMITTED
, s dalšími dotazy nemůžete nic dělat.
Přesun do StatelessSession
jen zbavit se těch dotazů je špatný nápad přesně z toho důvodu, na který jsi poukázal. Opravdu, jediný platný důvod, proč používat StatelessSession
je pro velké dávkové vkládání dat, o kterých víte, že nebudou během vkládání načtena.