无法在 SpringDataNeo4j 4.2 M1 (Ingalls) 上进行排序和分页

can not do sorting and pagination on SpringDataNeo4j 4.2 M1 (Ingalls)

我需要对 SDN 4 中的一些自定义查询进行分页和排序。我将 SDN 升级到最新的可用版本:版本 4.2 M1 (Ingalls) 并基于此 ticket 该问题已在此版本中修复.但是,当我尝试进行任何排序或分页时,它会抛出异常:

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

还有什么我必须更改才能使用排序和分页吗?您能否提供新实施的任何示例?

这是导致异常的 class : org.neo4j.driver.v1.Values

如您所见,if/else 子句中不支持 PageRequest 对象...我正在使用 'org.neo4j.driver',名称:'neo4j-java-driver',版本:'1.1.0-M06' ... .(最新版本)

我已经尝试了 SDN 的快照/public 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

感谢 SDN 活跃社区和 Jasper Blues ,问题已解决。这些是要遵循的步骤:

1) 确保使用 springDataNeo4j= "4.2.0.BUILD-SNAPSHOT" 和 "neo_ogm="2.1.0-SNAPSHOT" 依赖项。从以下存储库获取这些依赖项: 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);

一切正常!谢谢大家!!!