Neo4j - 将CQL返回结果映射到列表<pojo>

时间:2016-11-14 13:04:24

标签: neo4j spring-data-jpa spring-data-neo4j-4

我创建了CQL查询以返回多个列表对象。但是这个对象值是从两个不同的数组组合而成。我想要将这个值列表解析为List对象,而不使用JPA或OGM手动解析。

在我的POJO课程中:

private String DIST_ID;

private long PV;

private String POST_DATE;

在我的repo界面中:

@Query("MATCH(DST:Distributor) WITH DST AS DSTS, DST.PV AS array_one, DST.POST_DATE AS array_two UNWIND RANGE(0, SIZE(array_one) - 1) AS i WITH{DIST_ID: DSTS.DIST_ID ,PV: array_one[i],POST_DATE: array_two[i]} AS Odh RETURN Odh;")
public List<List<String>> getAllPVForMonth();

当我调用此方法时,我的结果低于[在Junit中测试]

[{DIST_ID=305594091, PV=110, POST_DATE=28-Sep-16}, {DIST_ID=305594191, PV=503, POST_DATE=30-Sep-16}]

我想将此结果转换为pojo对象列表。我不希望将List<List<String>>解析为List<POJO>。任何想法请分享您的输入。

1 个答案:

答案 0 :(得分:1)

这似乎在官方Spring data Neo4j documentation

中有所描述
ChangeListener<Boolean> focusLossListener = (observable, wasFocused, isFocused) -> {
    if (!isFocused) {
        tf.requestFocus();
    }
};
textField.textProperty().addListener(
        new ChangeListener<String>() {
        @Override
            public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
                textField.focusedProperty().removeListener(focusLossListener);
                if (!validate(newValue)) {
                    textField.focusedProperty().addListener(focusLossListener);
                    textField.setStyle("-fx-text-fill: green;");
                    textField.requestFocus();
                } else {
                    textField.setStyle("-fx-text-fill: black;");
                }
            }
        }
    );