我是neo4j spring数据的新手,我尝试执行的查询不是在我的spring boot应用程序上工作,而是在neo4j web界面上工作。
我在数据库上有3个节点:“Oracle”、“Java”和“Cloud”我正在尝试运行的查询:
MATCH(interest:Interest) WHERE interest.name =~ '(?i).*cl.*' RETURN interest
因此,使用neo4j web界面,如果我输入“CL”,它将返回“Oracle”和“Cloud”,这是正确的。
使用spring数据,我得到了所有3个结果,这是错误的。
我的存储库接口:
@Query("MATCH(interest:Interest) WHERE interest.name =~ '(?i).*{0}.*' RETURN interest")
Set<Interest> getKindOf(String value);
我的rest控制器:
@ResponseBody
public Collection<Interest> getPersonByName(@PathVariable String name) {
Set<Interest> interests = interestRepository.getKindOf(name);
return interests;
}
查看spring boot日志,我可以看到查询:
INFO 12716 --- [nio-2016-exec-1] o.n.o.drivers.http.request.HttpRequest : Thread: 22, url: http://localhost:7474/db/data/transaction/commit, request: {"statements":[{"statement":"MATCH(interest:Interest) WHERE interest.name =~ '(?i).*{0}.*' RETURN interest","parameters":{"0":"cl"},"resultDataContents":["graph"],"includeStats":false}]}
所以,问题是:为什么我使用neo4j web界面(OK)得到2个结果,而使用spring数据(NOK)得到3个结果?
谢谢你的帮助!
罗德里戈
完整的正则表达式应作为参数(也称为cypher查询参数)传递
@Query("MATCH(interest:Interest) WHERE interest.name =~ {0} RETURN interest")
Set<Interest> getKindOf(String value);
--
@ResponseBody
public Collection<Interest> getPersonByName(@PathVariable String name) {
String regex = "(?i).*" + name + ".*";
Set<Interest> interests = interestRepository.getKindOf(regex);
return interests;
}
注意,这与cypher参数处理有关,这不是sdn特有的
我试图编写一个返回大量数据(200个节点)的查询。节点非常简单: 我最初使用Spring Data Neo4j模板接口,但在返回大约100个节点后发现它非常慢。 所以,我的问题是:是否有一种方法可以提供标签作为Cypher查询的一部分,以防止需要再次查询每个节点?或者,除此之外,是否有一种方法可以为SDN提供一个包含标签和属性的并将其转换为POJO? 注意:我意识到SDN团队正在未来的版本中完全使
我正在尝试使用neo4j构建一个推荐引擎,并使用spring-data-neo4j作为持久层。我发现spring数据执行的cypher查询会给出结果,但是对于重复的对象,使用相同的数据集在neo4j浏览器上执行的相同查询会产生预期的结果。 下面是执行的查询(我通过启用调试获得)匹配(u:User)-[r:RATED]-(m:Movie)-[:HAS\u Movie]-(g:Genre)-[:HAS
但结果是一样的。 这是我的.hbm.xml文件中的内容: 对于用户: 我做错了什么?如果查询参数不是“简单”类型,我需要做一些特殊的事情吗?
我想让用户节点中的userName属性作为唯一。我使用了下面的代码,但它没有在Neo4j数据库中创建唯一的约束。 仅供参考,我使用的是Neo4j服务器版本:3.3。6(社区)带Spring靴2 但是如果我自己在Neo4j浏览器中创建一个约束,它就会工作。 有没有一种方法可以强制Spring Data Neo4J创建唯一的属性,而不需要自己在数据库中创建它们?
我是Spring data neo4j的新手,我对GraphRepository有一些错误/问题。 我第一次有了这个: 但是阅读一些文档,存储库已经提供了这样的方法。我不需要写它们。 这是我的产品域名。 这是我的实验班 未检测到查找字节 Id 这正常吗? 这是我的pom.xml
太长别读:@Depth(value=-1)抛出空指针,忽略1以上的其他值 在我的Spring Boot with Neo4j项目中,我有3个简单的实体与关系: 我创建了一个简单的图,如下所示: 使用以下存储库: 以及以下代码: 要检索与上图所示相同的图表(取自实际的neo4j仪表板),我执行,其中包含,然后打印保存的度量和检索的度量: 无论深度的值如何,我都无法获取包含所有子节点的Metric节点