Иногда хибернейт возвращает прокси объект, заместо инстанса нашего класса, подробнее о механизме можно прочитать в блоге Vlad Mihalcea https://vladmihalcea.com/how-does-a-jpa-proxy-work-and-how-to-unproxy-it-with-hibernate/

в более старых версия хибернэйта чем 5.2.10 нет метода unproxy и получить исходный класс без него можно только хитрым трюком:

public class HibernateUtils {

    /**
     * Явная инициализация lazy сущности
     *
     * @param entity lazy сущность
     * @return инициализированная сущность
     */
    public static <T> T unProxy(T entity) {
        if (entity instanceof HibernateProxy) {
            entity =  (T) ((HibernateProxy) entity).getHibernateLazyInitializer()
                                                   .getImplementation();
        }

        return entity;
    }

    /**
     * Явная инициализация lazy сущности и ее преобразование к указанному классу
     *
     * @param entity lazy сущность
     * @param clazz класс для преобразования
     * @return преобразованая сущность
     */
    public static <T, Y> Y unProxyToClass(T entity, Class<Y> clazz) {
        return (Y) HibernateUtils.unProxy(entity);
    }
}