У меня есть следующий запрос Cypher/Spring Data Neo4j 4, который возвращает список Критерий со своим средним весом, который был добавлен на этих Criterion
для определенного childDecisionId
.Neo4j Cypher query SDN 4 со сложным вложенным QueryResult
MATCH (parentD:Decision)-[:CONTAINS]->(childD:Decision)
WHERE id(childD) = {childDecisionId} AND id(parentD) = {parentDecisionId}
WITH childD, parentD MATCH (parentD)<-[:DEFINED_BY]-(c:Criterion)<-[:VOTED_ON]-(vg:VoteGroup)-[:VOTED_FOR]->(childD)
RETURN c AS criterion, vg.avgVotesWeight AS weight
@Query("MATCH (parentD:Decision)-[:CONTAINS]->(childD:Decision) WHERE id(childD) = {childDecisionId} AND id(parentD) = {parentDecisionId} WITH childD, parentD MATCH (parentD)<-[:DEFINED_BY]-(c:Criterion)<-[:VOTED_ON]-(vg:VoteGroup)-[:VOTED_FOR]->(childD) RETURN c AS criterion, vg.avgVotesWeight AS weight")
List<WeightedCriterion> getCriteriaWithAvgVotesWeightForChildDecision(@Param("childDecisionId") Long childDecisionId, @Param("parentDecisionId") Long parentDecisionId);
Это WeightedCriterion
QueryResult
:
@QueryResult
public class WeightedCriterion {
private Criterion criterion;
private Double weight;
}
мне нужно изменить этот запрос, чтобы вернуть список Criterion
с их средним весом не только для одного решения ребенка, но и для всех детей решений родитель parentDecisionId
.. другими словами этот запрос должен возвращать что-то вроде этого:
List<DecisionWeightedCriterion>
где DecisionWeightedCriterion
выглядит, например:
@QueryResult
public class DecisionWeightedCriterion {
private Decision decision;
private List<WeightedCriterion> weightedCriteria;
}
Можно ли и если да, то не могли бы вы помочь с этим Cypher запрос?