Не могу сделать сортировку и разбиение на страницы на SpringDataNeo4j 4.2 M1 (Ingalls)

Мне нужно выполнить разбиение на страницы и сортировку некоторых пользовательских запросов в SDN 4. Я обновил SDN до последней доступной версии: версии 4.2 M1 (Ingalls), и на основе этого тикета проблема исправлена ​​в этой версии. Однако, когда я пытаюсь выполнить какую-либо сортировку или разбиение на страницы, выдается исключение, говорящее, что:

org.neo4j.ogm.exception.CypherException: Error executing Cypher; Code: N/A; Description: Unable to convert org.springframework.data.domain.PageRequest to Neo4j Value.

Это код, который я использую:

   Pageable pageable = new PageRequest(0, 3, Sort.Direction.DESC, "name");

   owners = ownerRepository.getOwnersByFacetGroupId(facetGroupId, pageable);

и это мой запрос к хранилищу:

public interface OwnerRepository extends Neo4jRepository<Owner> {


@Query("MATCH (n:OWNER)-[r:HAS]-(c:FACET_GROUP) Where id(c)={0} RETURN n")
List<Owner> getOwnersByFacetGroupId(Long id , Pageable pageable);}

и это последний запрос, который использует neo4j:

Request: MATCH (n:OWNER)-[r:HAS]-(c:FACET_GROUP) Where id(c)={0} RETURN n ORDER BY n.name DESC with params {0=9275402, 1={sort=[{direction=DESC, property=n.name, ignoreCase=false, nullHandling=NATIVE, ascending=false}], offset=0, pageSize=3, pageNumber=0}}

Что-нибудь еще, что я должен изменить, чтобы использовать сортировку и нумерацию страниц? Можете ли вы привести примеры для новой реализации?

Это класс, который вызывает исключение: org.neo4j.driver.v1.Values

Как видите, в выражениях if / else отсутствует поддержка объекта PageRequest... Я использую 'org.neo4j.driver', имя: 'neo4j-java-driver', версия: '1.1.0-M06' ....(последняя версия)

Я пробовал оба снимка / публичные jar для SDN https://repo.spring.io/libs-snapshot/org/springframework/data/spring-data-neo4j/4.2.0.M1/ и https://mvnrepository.com/artifact/org.springframework.data/spring-data-neo4j/4.2.0.M1

1 ответ

Решение

Благодаря активному сообществу SDN и Jasper Blues, проблема решена. Вот следующие шаги:

1) Убедитесь, что вы используете зависимости springDataNeo4j= "4.2.0.BUILD-SNAPSHOT" и "neo_ogm="2.1.0-SNAPSHOT". Получите thoses из следующих репозиториев: maven {url ' https://repo.spring.io/libs-snapshot'} maven {url' http://m2.neo4j.org/content/repositories/snapshots'}

2) НЕ изменяйте ваши @EnableNeo4jRepositories на @EnableExperimentalNeo4jRepositories и GraphRepository на Neo4jRepository ... Эти изменения не включены в эту сборку снимка.

3) Чтобы получить отсортированный по страницам результат, используйте этот код в качестве примера:

 Pageable pageable = new PageRequest(0, 3, Sort.Direction.DESC, "name");
  Page<Owner> owners = ownerRepository.executeMyQuery(pageable);

Все работает как положено! Спасибо всем!!!

Другие вопросы по тегам