簡體   English   中英

Neo4j OGM FilteredQueryBuilder

[英]Neo4j OGM FilteredQueryBuilder

是否有人使用FilteredQueryBuilder類在Java中創建Cypher查詢?

我正在嘗試使用neo4j-ogm創建此查詢:

MATCH (n:Message) WHERE n.messageContext = 'RECEBER_BOLETO_EM_ABERTO'
MATCH (n)-[r0:NEXT]->(m) WHERE r0.response = 'SIM'
return m
Map<String, Object> parameters = new HashedMap<>();
parameters.put("messageContext", "RECEBER_BOLETO_EM_ABERTO");
parameters.put("response", "SIM");

Filters filtersNode = new Filters();

Filter filterStartNode = new Filter("messageContext", ComparisonOperator.EQUALS, "RECEBER_BOLETO_EM_ABERTO");       
filterStartNode.setNestedEntityTypeLabel("Message");    
filterStartNode.setNestedPropertyName("messageContext");
filterStartNode.setRelationshipDirection(Relationship.OUTGOING);
filterStartNode.setBooleanOperator(BooleanOperator.AND);
filtersNode.add(filterStartNode);

Filter filterEndNode = new Filter("response", ComparisonOperator.EQUALS, "SIM");    
filterEndNode.setNestedPropertyName("response");
filterEndNode.setRelationshipDirection(Relationship.TYPE);
filterEndNode.setBooleanOperator(BooleanOperator.AND);
filtersNode.add(filterEndNode);


FilteredQuery fq = FilteredQueryBuilder.buildRelationshipQuery("NEXT", filtersNode);
fq.setReturnClause("return m");

Builder類不會將參數解析為密碼查詢,並引發異常,如下所示:

org.neo4j.ogm.exception.CypherException:執行Cypher時出錯; 代碼:Neo.ClientError.Statement.ParameterMissing; 說明:需要一個名為messageContext_messageContext_0的參數

提前致謝。

查詢生成器是OGM的內部類。 不要依賴它們,它們將來可能會改變。 在OGM會話中使用過濾器是可以的。

要構建自定義密碼查詢,您可能會對Cypher DSL感興趣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM