2015-10-16 93 views
1

我有一些意外失敗的spring-data-neo4j/ogm代碼。這個neo4j-ogm代碼爲什麼產生'無效語法'?

public Member loadMemberBySocialMediaAccount(String connectionKey) { 
     String[] connectionKeyParts = connectionKey.split(":"); 
     Filters filters = new Filters() 
       .add(new Filter("providerId", connectionKeyParts[0])) 
       .add(new Filter("providerUserId", connectionKeyParts[1])); 
     Iterator<SocialMediaAccount> socialMediaAccounts = session.loadAll(SocialMediaAccount.class, filters, 2).iterator(); 
     return socialMediaAccounts.hasNext() ? socialMediaAccounts.next().getMember() : null; 
} 

當我深入到OGM代碼,我可以看到下面的異常被拋出。這是預期的嗎?

org.neo4j.ogm.session.result.ResultProcessingException: "errors":[{"code":"Neo.ClientError.Statement.InvalidSyntax","message":"Invalid input 'n': expected whitespace, comment, '.', node labels, '[', \"=~\", IN, IS, '^', '*', '/', '%', '+', '-', '<', '>', \"<=\", \">=\", '=', \"<>\", \"!=\", AND, XOR, OR, LOAD CSV, START, MATCH, UNWIND, MERGE, CREATE, SET, DELETE, REMOVE, FOREACH, WITH, RETURN, UNION, ';' or end of input (line 1, column 72 (offset: 71))\n\"MATCH (n:`SocialMediaAccount`) WHERE n.`providerId` = { `providerId` } n.`providerUserId` = { `providerUserId` } WITH n MATCH p=(n)-[*0..2]-(m) RETURN p, ID(n)\"\n                  ^"}]} 

回答

0

剛纔檢查測試,並期望是什麼是除第一所有過濾器必須有(AND或OR)定義的BooleanOperator。

所以你的情況:

Filters filters = new Filters() 
       .add(new Filter("providerId", connectionKeyParts[0])); 
Filter providerUserIdFilter = new Filter("providerUserId", connectionKeyParts[1]); 
providerUserIdFilter.setBooleanOperator(BooleanOperator.AND); 
filters.add(providerUserIdFilter); 

我已經打開https://github.com/neo4j/neo4j-ogm/issues/73爲我們弄清楚是否是可行的默認BooleanOperator後續過濾器和。

相關問題