Neo4j 将密码查询结果映射到域对象

Neo4j 将密码查询结果映射到域对象,neo4j,spring-data-neo4j,Neo4j,Spring Data Neo4j,我刚开始在Spring数据中使用Neo4j,但我无法恢复图形对象并将它们转换回域对象。我必须说,我以前在这种数据库方面没有经验 这样,我就使用了Spring数据存储库。对于标准查询,存储库代码是自动生成的,但我想定义一些自定义方法,因此我创建了自定义存储库,如前所述 例如,我希望能够从两个特定节点之间的给定边缘更新特定属性值(在本例中为currentValue属性)(searchByUserName是我的节点实体中先前定义的表示用户的索引)。我在自定义存储库实现中使用Neo4j模板中的查询方法,

我刚开始在Spring数据中使用Neo4j,但我无法恢复图形对象并将它们转换回域对象。我必须说,我以前在这种数据库方面没有经验

这样,我就使用了Spring数据存储库。对于标准查询,存储库代码是自动生成的,但我想定义一些自定义方法,因此我创建了自定义存储库,如前所述

例如,我希望能够从两个特定节点之间的给定边缘更新特定属性值(在本例中为currentValue属性)(searchByUserName是我的节点实体中先前定义的表示用户的索引)。我在自定义存储库实现中使用Neo4j模板中的查询方法,如下所示:

public class TwitterUserRepositoryImpl implements TwitterUserRepositoryCustom{

    @Autowired
    private Neo4jOperations neo4jTemplate;

public void updateRelationshipValueByUserName(
            String userAUserName, String userBUserName, double value){
        HashedMap params = new HashedMap();
        params.put("userAUserName", userAUserName);
        params.put("userBUserName", userBUserName);
        params.put("value", value);
        String query = "START x=node:searchByUserName(userName = {userAUserName}), " +
                        "y=node:searchByUserName(userName = {userBUserName})" +
                        " MATCH (x)-[r:FOLLOWS]->(y)" +
                        " SET r.currentValue = {value}" +
                        " RETURN r";
        Result<Map<String, Object>> relationships = neo4jTemplate.query(query, params);
        /* let's try to recover the relationship entity and do some more stuff */
    }
公共类TwitterUserRepositoryImpl实现TwitterUserRepositoryCustom{ @自动连线 私人Neo4joOperations neo4jTemplate; public void updateRelationshipValueByUserName( 字符串userAUserName,字符串userBUserName,双值){ HashedMap params=新的HashedMap(); 参数put(“userAUserName”,userAUserName); 参数put(“userBUserName”,userBUserName); 参数put(“值”,值); String query=“START x=node:searchByUserName(userName={userAUserName}),”+ “y=node:searchByUserName(userName={userBUserName})”+ “匹配(x)-[r:跟随]->(y)”+ “设置r.currentValue={value}”+ “返回r”; 结果关系=neo4jTemplate.query(查询,参数); /*让我们尝试恢复关系实体并做更多的事情*/ } cypher查询返回两个用户之间的“边缘”,其关系类型为“FOLLOWS”,模拟Twitter用户网络。我不知道如何将此QueryResult对象转换回我的RelationshipEntity对象。这可能吗?

只需使用结果dsl:


将返回一个
结果
,这是一个
可编辑的

,这正是我想要的。非常感谢,谢谢!
relationships.to(MyRelationshipEntity.class)