Когда я вызвал JPA-запрос с постраничным постраничным запросом, бросил «PageImpl: подходящий конструктор не найден, не может десериализоваться» - PullRequest
0 голосов
/ 03 января 2019

Я хочу использовать кэш пружин и добавил его в findAll (Pageable pageable), как показано ниже:

@CacheConfig(cacheNames = {"familyUserDao"})
public interface FamilyUserDao extends JpaRepository<FamilyUser,Long> {
    @Override
    @Cacheable(key = "methodName +#p0")
    Page<FamilyUser> findAll(Pageable pageable);
}

Когда я позвонил
Page familyUserPage = familyUserDao.findAll (pageable);в первый раз он работает, но когда я позвонил во второй раз, он выдает следующее:

org.springframework.data.redis.serializer.SerializationException: Could not         read JSON: Can not construct instance of org.springframework.data.domain.PageImpl: no suitable constructor found, can  not deserialize from Object value (missing default constructor or creator, or perhaps need to add/enable type information?)
 at [Source: [B@7fae8571; line: 1, column: 46]; nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not construct instance of org.springframework.data.domain.PageImpl: no suitable constructor found, can not deserialize from Object value (missing default constructor or creator, or perhaps need to add/enable type information?)
 at [Source: [B@7fae8571; line: 1, column: 46]
at org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer.deserialize(Jackson2JsonRedisSerializer.java:73)

На самом деле это проблема десериализации, класс реализации по умолчанию для страницы - PageImpl.Но у него нет конструктора по умолчанию, так как это исправить?

1 Ответ

0 голосов
/ 03 января 2019

когда вы вызываете метод, который вы должны передать в параметре, два атрибута типа Page и целое число, как продолжение:

Page familyUserPage = familyUserDao.findAll (int page, int size);

для отображения первых 10 объектов вы устанавливаете страницу на 0, а размер на 10, на 10 следуйте за страницей на 1 и размером на 10 ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...