Не съм сигурен дали това се отнася точно за вашия случай, но имах много подобна ситуация с много време, загубено в ClassUtils.forName()
и ClassLoader.load()
.
Проверих ситуацията под дебъгера и основната причина в моя случай беше, че класът, към който се опитвах да десериализирам документа, беше преместен в различен пакет. В този случай Spring Data не може правилно да кешира информация за типа и издава бавен и скъп ClassLoader.load()
на запазения _class
поле за всеки документ !
Разбира се, това зареждане на клас е обречено на провал, защото препраща към клас, който вече не съществува на мястото, съхранено в _class
поле на документа.