Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 用于获取具有给定属性值的节点的密码查询_Spring_Neo4j_Spring Data_Spring Data Graph_Cypher - Fatal编程技术网

Spring 用于获取具有给定属性值的节点的密码查询

Spring 用于获取具有给定属性值的节点的密码查询,spring,neo4j,spring-data,spring-data-graph,cypher,Spring,Neo4j,Spring Data,Spring Data Graph,Cypher,对于Spring数据图上的Cypher查询来说,这可能非常简单 我正在寻找什么样的Cypher查询来获取具有给定属性值的所有节点。那么,@Query注释中的?是什么,用于以下内容: @Query(???) List<MyObject> findByProperty1AndProperty2(String property1, String property2) @Query(?) 列出FindByProperty1和property2(字符串property1、字符串propert

对于Spring数据图上的Cypher查询来说,这可能非常简单

我正在寻找什么样的Cypher查询来获取具有给定属性值的所有节点。那么,@Query注释中的
是什么,用于以下内容:

@Query(???)
List<MyObject> findByProperty1AndProperty2(String property1, String property2)
@Query(?)
列出FindByProperty1和property2(字符串property1、字符串property2)
编辑: 因此,我通过添加Cypher依赖项来使用派生查询(如下面Michael所建议的)。但我似乎得到了以下错误:

字符串匹配正则表达式(?i)\Qreturn\E应为“但找到了”

我认为这是因为它似乎在创建一个如下查询:

start n=node:\uuuuu类型(className=“com.example.MyObject”),其中n.property1={0},n.property2={1}返回n

而不是

start n=node:_类型__(className=“com.example.MyObject”),其中n.property1={0}和n.property2={1}返回n

(请注意查询中的
而不是


提前感谢。

请考虑到全局查询不是Neo4j的最佳选择,但当您运行Spring Data Neo4j时,这种情况会稍微减轻一点。:)

实际上,此查询不需要
@Query
注释

它构造一个派生查询来查看您的属性,如果一个属性被索引,它将使用该查询作为查询的起点,否则它将从“
\uuuuuuu type\uuuu
”索引中提取所有条目

实际上,它将创建如下查询:

start n=node:__types__(className="com.example.MyObject")
where n.property1 = {0} and n.property2 = {1} 
return n
因此,如果您正在使用SDN的当前快照构建(本周将作为RC1发布)。 您只需执行以下操作:

List<MyObject> findByProperty1AndProperty2(String property1, String property2)
列出查找到的ByProperty1和property2(字符串property1,字符串property2)
当然,cypher和gremlin在SDN中是可选的依赖项(b/c一些人默认不想引入scala/groovy)。您只需将cypher的maven依赖项添加到您的项目中即可

<dependency>
   <groupId>org.neo4j</groupId>
   <artifactId>neo4j-cypher</artifactId>
   <version>${neo4j.version}</version>
</dependency>

org.neo4j
neo4j-cypher
${neo4j.version}

请注意,全局查询不是Neo4j的最佳选择,但当您运行Spring Data Neo4j时,这种情况会稍微减轻一些。:)

实际上,此查询不需要
@Query
注释

它构造一个派生查询来查看您的属性,如果一个属性被索引,它将使用该查询作为查询的起点,否则它将从“
\uuuuuuu type\uuuu
”索引中提取所有条目

实际上,它将创建如下查询:

start n=node:__types__(className="com.example.MyObject")
where n.property1 = {0} and n.property2 = {1} 
return n
因此,如果您正在使用SDN的当前快照构建(本周将作为RC1发布)。 您只需执行以下操作:

List<MyObject> findByProperty1AndProperty2(String property1, String property2)
列出查找到的ByProperty1和property2(字符串property1,字符串property2)
当然,cypher和gremlin在SDN中是可选的依赖项(b/c一些人默认不想引入scala/groovy)。您只需将cypher的maven依赖项添加到您的项目中即可

<dependency>
   <groupId>org.neo4j</groupId>
   <artifactId>neo4j-cypher</artifactId>
   <version>${neo4j.version}</version>
</dependency>

org.neo4j
neo4j-cypher
${neo4j.version}

谢谢您的回复,@Michael!但正如另一篇文章中提到的,当我使用派生查询时,我得到一个错误——“Cypher不可用,请将其添加到您的依赖项中”。知道原因吗?(我使用SDN 2.0.0.M1)在添加依赖项后,我得到一个错误,如:
字符串匹配regex
(?I)\Qreturn\E'expected but
,'found
我认为原因是它似乎在创建一个类似以下的查询:
start n=node:\uuu类型(className=“com.example.MyObject”),其中n.property1={0},n.property2={1}返回n
,而不是
start n=node:\uu类型(className=“com.example.MyObject”),其中n.property1={0}和n.property2={1}返回n
。注意我的查询中的
而不是
,你能为此提出一个JIRA问题吗?非常感谢。感谢你的回复,@Michael!但是正如另一篇文章中提到的,当我使用派生查询时,我得到一个错误——“Cypher不可用,请将它添加到你的依赖项中”。你知道为什么吗?(我使用的是SDN 2.0.0.M1)在添加依赖项之后,我得到了一个错误,比如:
字符串匹配regex
(?I)\Qreturn\E'expected,但是
,'found
我认为原因是它似乎在创建一个查询,比如:
start n=node:\uu类型(className=“com.example.MyObject”),其中n.property1={0},n.property2={1}返回n
而不是
start n=node:\uuuu types\uuuuu(className=“com.example.MyObject”),其中n.property1={0}和n.property2={1}返回n
。请注意我查询中的
而不是
,您可以为此提出JIRA问题吗?非常感谢。