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

时间:2016-11-16 00:29:33

标签: spring-data-neo4j-4

我已经读过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&#34; Neo.ClientError.Statement.SyntaxError&#34;;时出错代码:Neo.ClientError.Statement.SyntaxError;说明:无效输入&#39; K&#39;:预期&#t; / T&#39;或者&#39; e / E&#39; (第1行,第84栏(抵消:83)) &#34;匹配(m:成员{domainId:{domainId}}) - [s:SUBSCRIBER] - &gt;(t:MessageThread)返回t;跳过{sdnSkip} LIMIT {sdnLimit}&#34;

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

我目前正在使用SDN 4.2.0.M1

更新:以下是发送到neo4j服务器的http请求(包括cypher):

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

1 个答案:

答案 0 :(得分:2)

查看您的查询:

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

以分号结尾。几个星期前实现了这个错误的测试用例和修复程序 - 作为SNAPSHOT版本提供。

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