Spring-data-neo4j-4 在使用带有自定义查询的分页时生成无效密码

Spring-data-neo4j-4 generates invalid cypher when using paging with custom queries

我读到 here spring-data-neo4j-4 现在支持 spring-data-neo4j 4 中的分页和排序。

但是下面的代码给出了下面的错误。

存储库代码

@Query("match (m:Member {domainId: {domainId}})-[s:SUBSCRIBER]->(t:MessageThread) return t;")
Page<MessageThread> findByMemberId(Pageable pageable, @Param("domainId") String memberId);

错误信息

org.neo4j.ogm.exception.CypherException:执行 Cypher 时出错 "Neo.ClientError.Statement.SyntaxError";代码:Neo.ClientError.Statement.SyntaxError;说明:无效输入 'K':应为 't/T' 或 'e/E'(第 1 行,第 84 列(偏移量:83)) "match (m:Member {domainId: {domainId}})-[s:SUBSCRIBER]->(t:MessageThread) return t; SKIP {sdnSkip} LIMIT {sdnLimit}"

我想知道,这是预期的还是我做错了什么?

我目前使用的是 SDN 4.2.0.M1

更新:这是发送到 neo4j 服务器的 http 请求(包括密码):

http://localhost:62131/db/data/transaction/commit, request: 

{
    "statements": [{
        "statement": "match (m:Member {domainId: {domainId}})-[s:SUBSCRIBER]->(t:MessageThread) return t; SKIP {sdnSkip} LIMIT {sdnLimit}",
        "parameters": {
            "0": {
                "sort": null,
                "offset": 0,
                "pageNumber": 0,
                "pageSize": 20
            },
            "domainId": "5qfrCXxDQJm5SGpIHtI1yw",
            "sdnSkip": 0,
            "sdnLimit": 20
        },
        "resultDataContents": ["graph"],
        "includeStats": false
    }]
}

查看您的查询:

@Query("match (m:Member {domainId: {domainId}})-[s:SUBSCRIBER]->(t:MessageThread) return t;")
Page<MessageThread> findByMemberId(Pageable pageable, @Param("domainId") String memberId);

以分号结尾。几周前针对此错误实施了一个测试用例和修复程序 - 可作为 SNAPSHOT 版本使用。

如果您不想使用 SNAPSHOT 版本,可以通过删除自定义查询末尾的分号来解决此问题。