2016-08-01 6 views
3

Я пытаюсь ввести поддержку Pageable для моего пользовательских Cyper запросов над SDN методом 4 Repository:Spring Data Neo4j 4 и выгружаемой @QueryResult

@Query(value = "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", countQuery="MATCH (parentD)-[:CONTAINS]->(childD:Decision) WHERE id(parentD) = {decisionId} RETURN count(childD)") 
Page<WeightedDecision> getChildDecisionsSortedBySumOfCriteriaAvgVotesWeight(@Param("decisionId") Long decisionId, @Param("criteriaIds") Set<Long> criteriaIds, Pageable pageable); 

WeightedDecision является @QueryResult:

@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; 
    } 

} 

В настоящее время эта логика выходит из строя с исключением ClassCastException:

java.lang.ClassCastException: com.example.domain.model.decision.result.WeightedDecision cannot be cast to org.springframework.data.domain.Page 

Что я делаю неправильно и как это исправить?

+0

Воспроизведение этой проблемы как ошибка в OGM (или SDN, скорее). Работа над исправлением. Будет держать вас в курсе. –

ответ

4

Версия 2.0.4 SDN не поддерживает пейджинг для @QueryResult. Версия 2.0.5 будет поддерживать, и эта функция доступна для UAT в репозитории сборки моментальных снимков.

+0

Я хотел бы подтвердить, что теперь он работает с OGM 2.0.5-SNAPSHOT и SDN 4.2.0-BUILD-SNAPSHOT. Благодаря !!! – alexanoid

Смежные вопросы