Nie jestem pewien, czy dotyczy to konkretnego przypadku, ale miałem bardzo podobną sytuację, w której marnowałem dużo czasu w ClassUtils.forName()
i ClassLoader.load()
.
Sprawdziłem sytuację pod debuggerem i główną przyczyną w moim przypadku było to, że klasa, do której próbowałem deserializować dokument, została przeniesiona do innego pakietu. W takim przypadku Spring Data nie może prawidłowo buforować informacji o typie i wydaje powolne i kosztowne ClassLoader.load()
na upartym _class
pole dla każdego dokumentu !
Oczywiście to ładowanie klasy jest skazane na niepowodzenie, ponieważ odwołuje się do klasy, która już nie istnieje w lokalizacji przechowywanej w _class
pole dokumentu.