2016-11-17 7 views
1

SDN 4의 일부 사용자 정의 쿼리에서 페이지 매김 및 정렬을 수행해야합니다. SDN을 최신 사용 가능 버전 인 버전 4.2 M1 (Ingalls)로 업그레이드하고이 ticket 이 버전에서는 문제가 해결되었습니다. 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);} 

이 마지막 요청입니다.

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}} 

정렬 및 페이지 매김을 사용할 수 있도록 변경해야 할 것이 있습니까? 새 구현에 대한 예제를 제공 할 수 있습니까? 당신이 PageRequest 객체에 대한 지원이없는 볼 수 있듯이/다른 절을하면 ... 내가 사용에

enter image description here org.neo4j.driver.v1.Values ​​:

는 예외가 발생하는 클래스입니다 'org.neo4j.driver', 이름 : 'neo4j-java-driver', 버전 : '1.1.0-M06'.... (최신 버전)

SDN에 대한 스냅 샷/공용 jar를 모두 시도했습니다. 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

폴더 날짜가 오래되었지만 가장 최근의 아티팩트가 11 월 16 일에 게시되었습니다. –

답변

3

SDN active commun 재 스퍼 블루스 & 문제가 해결되었습니다. 다음은 따라야 할 단계는 다음과 같습니다.

1) springDataNeo4j = "4.2.0.BUILD-SNAPSHOT"와 "neo_ogm ="2.1.0-SNAPSHOT "종속성을 사용하십시오 다음 저장소에서 양태에서는 얻기 : 받는다는 {URL 'https://repo.spring.io/libs-snapshot'} 받는다는 이

2) @ EnableExperimentalNeo4jRepositories 및 Neo4jRepository에 GraphRepository에 @를 EnableNeo4jRepositories을 변경하지 마십시오 ... 이러한 변화는이 스냅 샷 빌드에 포함되지 않습니다

{URL ' http://m2.neo4j.org/content/repositories/snapshots'}.

3) 페이지 가능 정렬 결과를 얻으려면 다음 코드를 예제로 사용하십시오.

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

모든 것이 예상대로 작동합니다. 고마워요!