Исключение: rg.springframework.cloud.gcp.data.datastore.core.mapping.DatastoreDataException: невозможно преобразовать класс PageRequest в хранилище данных - PullRequest
0 голосов
/ 22 января 2020

У меня проблема с данными Spring. Когда я использую аннотацию @Query с Pageable, например:

  @Query("SELECT * FROM myTable WHERE myTable.t_blob_name > NULL")
    Slice<MyTable> findAllWithPageable(Pageable pageable);

, у меня будет следующее исключение (это приложение работает на облачной платформе Google):

org.springframework.cloud.gcp.data.datastore.core.mapping.DatastoreDataException: Unable to convert class org.springframework.data.domain.PageRequest to Datastore supported type.
at org.springframework.cloud.gcp.data.datastore.core.convert.DatastoreNativeTypes.wrapValue (DatastoreNativeTypes.java:166)
at org.springframework.cloud.gcp.data.datastore.core.convert.TwoStepsConversions.convertOnWriteSingle (TwoStepsConversions.java:320)
at org.springframework.cloud.gcp.data.datastore.repository.query.GqlDatastoreQuery.bindArgsToGqlQuery (GqlDatastoreQuery.java:233)
at org.springframework.cloud.gcp.data.datastore.repository.query.GqlDatastoreQuery.execute (GqlDatastoreQuery.java:118)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke (RepositoryFactorySupport.java:605)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.lambda$invoke$3 (RepositoryFactorySupport.java:595)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke (RepositoryFactorySupport.java:595)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:186)
at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke (DefaultMethodInvokingMethodInterceptor.java:59)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:186)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke (ExposeInvocationInterceptor.java:93)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:186)
at org.springframework.data.repository.core.support.SurroundingTransactionDetectorMethodInterceptor.invoke (SurroundingTransactionDetectorMethodInterceptor.java:61)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke (JdkDynamicAopProxy.java:212)

Это хранилище данных Google Cloud. синтаксис и главный вопрос - как решить эту проблему?

1 Ответ

0 голосов
/ 23 января 2020

Существует список поддерживаемых классов, которые можно использовать в GQL. Вы можете найти его в контрольной точке 158.5.2 и непосредственно в коде на GitHub , если хотите. На самом деле класс Pageable среди них отсутствует.

Я заметил, что вы не используете этот параметр в запросе, поэтому я предлагаю использовать Slice<MyTable> findAllWithPageable() Подобный запрос вы можете найти в здесь .

Надеюсь, это поможет!

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