gpt4 book ai didi

java - cypher 上的索引不会在事务中更新

转载 作者:行者123 更新时间:2023-11-30 04:20:21 26 4
gpt4 key购买 nike

如果我在事务中,密码索引不会返回任何内容,但是如果我在运行密码查询之前使用 SpringRest 或提交,它会返回节点。这是上下文:我有一个带有索引的对象,如果我使用 GraphRepository.findByPropertyValue() 来获取,我将通过 Neo4jTemplate.save() 插入它保存的对象会返回ok,但如果我将Cypher与索引一起使用,它会返回。如果我通过 nodeID 获取对象,Cypher 仅返回该对象。

@NodeEntity
public class Group {
@GraphId
private Long nodeId;
@Indexed(indexName = "groupIndex")
private Long id;
}

使用时OK:

GraphRepository.findByProperty("id", 1L);
Neo4jTemplate.query("START n=node(1) RETURN n");

使用时没有任何内容:

Map<String, Object> params = new HashMap<>();
params.put("id", 1L);
Neo4jTemplate.query("START n=node:groupIndex(id={id}) RETURN n", params);

最佳答案

问题是在您的查询中,您要求字符串格式的索引,但在第一个示例中您将它们指定为数字。

如果我没记错的话,您无法对数字存储的索引执行 Cypher 查询。您可以引用this link .

这里的简单解决方案是通过更改 @Indexed 将该 ID 字段存储为非数字字段。成为@Indexed(indexName = "groupIndex", numeric = false)

关于java - cypher 上的索引不会在事务中更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17195147/

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