gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 05:10:22 25 4
gpt4 key购买 nike

我刚开始将 Neo4j 与 Spring Data 结合使用,我无法恢复图形对象并将它们转换回域对象。我必须说我以前没有使用过那种数据库。

通过这种方式,我使用了 Spring Data 存储库。对于标准查询,存储库代码是自动生成的,但我想定义一些自定义方法,因此我按照说明创建了自定义存储库 here .

例如,我希望能够从两个特定节点之间的给定边缘更新特定属性值(在本例中为 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 */
}

cypher 查询返回两个用户之间的“边”,其关系类型为“FOLLOWS”,模拟 Twitter 用户网络。我不知道如何将此 QueryResult 对象转换回我的 RelationshipEntity 对象。这可能吗?

最佳答案

只需使用结果-dsl:http://static.springsource.org/spring-data/data-graph/snapshot-site/reference/html/#d5e1118

relationships.to(MyRelationshipEntity.class)

会给你一个Result<MyRelationshipEntity>这是一个Iterable

关于neo4j - 将密码查询结果映射到域对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15558864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com