[英]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.