В моем проекте SDN 4 у меня есть @QueryResult
POJO:
@QueryResult
public class WeightedDecision {
private Decision decision;
private double weight;
public Decision getDecision() {
return decision;
}
public void setDecision(Decision decision) {
this.decision = decision;
}
public double getWeight() {
return weight;
}
public void setWeight(double weight) {
this.weight = weight;
}
}
И множество методов репозитория Spring Data Neo4j, которые отлично работают с этим результатом запроса WeightedDecision
.
Прямо сейчас я пытаюсь вручную создать запрос Cypher, в результате которого я собираюсь вернуть список WeightedDecision
.
Я использую для этой цели следующий метод:
return (List<WeightedDecision>) session.query(WeightedDecision.class, cypher, parameters);
мой запрос Cypher выглядит так:
MATCH (parentD)-[:CONTAINS]->(childD:Decision)-[ru:CREATED_BY]->(u:User) WHERE id(parentD) = {decisionId} OPTIONAL MATCH (childD)<-[:VOTED_FOR]-(vg:VoteGroup)-[:VOTED_ON]->(c:Criterion) WHERE id(c) IN {criteriaIds} WITH childD, ru, u, vg.avgVotesWeight as weight RETURN childD AS decision, ru, u, sum(weight) as weight ORDER BY weight DESC
но результат session.query
в этом случае пуст.
Если я изменяю параметры метода session.query
на:
return (List<WeightedDecision>) session.query(Decision.class, cypher, parameters);
где Decision
— объект узла, все работает нормально и возвращает список решений.
Как заставить его работать с типом @QueryResult
?