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 版本,可以通过删除自定义查询末尾的分号来解决此问题。
我读到 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 版本,可以通过删除自定义查询末尾的分号来解决此问题。