我已经读过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
}]
}
答案 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版本,可以通过从自定义查询末尾删除分号来解决此问题。