首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring-Data-Neo4j带注释的Cypher查询,匹配参数

Spring-Data-Neo4j带注释的Cypher查询,匹配参数
EN

Stack Overflow用户
提问于 2015-05-27 18:58:30
回答 2查看 932关注 0票数 0

我试图用Spring Neo4j-3.1.4对带注释的Cypher查询的匹配部分进行参数化,如下所示。第一种方法是有效的。在第二个方法中将节点类型作为参数传递失败。

代码语言:javascript
复制
public interface NodeRepository extends CrudRepository<Node, Long> {

    @Query("START n=node(*) MATCH (n:Organization) RETURN n")
    List<Node> findByNodeType();

    @Query("START n=node(*) MATCH (n:{0}) RETURN n")
    List<Node> findByNodeType(String nodeType);
}

例外是:

代码语言:javascript
复制
org.springframework.dao.InvalidDataAccessResourceUsageException: 
  Error executing statement START n=node(*) MATCH (n:{0}) RETURN n;     
  nested exception is org.springframework.dao.InvalidDataAccessResourceUsageException: 
  Error executing statement START n=node(*) MATCH (n:{0}) RETURN n; 
  nested exception is Invalid input '{': 
  expected whitespace or a label name (line 1, column 26)
  "START n=node(*) MATCH (n:{0}) RETURN n"
  at org.springframework.data.neo4j.support.query.CypherQueryEngineImpl.query(CypherQueryEngineImpl.java:61)
  at org.springframework.data.neo4j.repository.query.GraphRepositoryQuery.dispatchQuery(GraphRepositoryQuery.java:107) 
  at org.springframework.data.neo4j.repository.query.GraphRepositoryQuery$1.doWithGraph(GraphRepositoryQuery.java:89) 
  at org.springframework.data.neo4j.support.Neo4jTemplate.doExecute(Neo4jTemplate.java:457) 
  at org.springframework.data.neo4j.support.Neo4jTemplate.access$000(Neo4jTemplate.java:87) 
  at org.springframework.data.neo4j.support.Neo4jTemplate$2.doInTransaction(Neo4jTemplate.java:471)

如何将节点作为参数传递给Cypher查询?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-29 07:57:30

将查询更改为:MATCH (n:Organization) RETURN n

你可以试试:MATCH (n) WHERE {0} IN labels(n) RETURN n

但是它不会有效率,你为什么一开始就想这么做呢?

由于查询计划器的原因,不允许标签作为参数(尚未)。

票数 1
EN

Stack Overflow用户

发布于 2015-05-27 19:49:53

如果您阅读了异常:Invalid input '{':

这意味着查询是错误的。实际上,不能将标签作为参数传递到Cypher查询中,这很简单;-)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30490944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档