2016-11-17 4 views
1

Мне нужно сделать разбиение на страницы и сортировку по некоторым пользовательским запросам в SDN 4. Я обновил SDN до последней доступной версии: Версия 4.2 M1 (Ingalls) и на основе этого ticket проблема исправлена ​​в этой версии. Однако, когда я пытаюсь делать какие-либо сортировки или PAGINATION он бросает исключение о том, что:не может сортировать и разбивать на страницы на SpringDataNeo4j 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 ​​

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

Я пробовал оба моментальных снимка/публичные баночки для 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

+0

Я считаю, что сборки M1 устарели, можете ли вы попробовать попробовать «4.2.0.BUILD-SNAPSHOT»? –

+0

@JasperBlues Я проверил https://repo.spring.io/libs-snapshot/org/springframework/data/spring-data-neo4j/, похоже, 4.2.0.M1/является новее. – Lina

+0

Дата папок старше, но внутри самого последнего артефакта была опубликована 16 ноября. –

ответ

3

Благодаря активной общине SDN ity & Джаспер Блюз, проблема решена. Эти шаги, чтобы следовать:.

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); 

Все работает должным образом! Всем спасибо !!!

Смежные вопросы