1

有人可以解释适当的 Cypher 查询语法以从下面提到的存储库查询中获得以下结果吗?下面提到的团队名称已保存到存储库中。

  • 洛杉矶湖人队
  • 阿纳海姆洛杉矶快船队
  • 金州勇士队
  • 洛杉矶阿纳海姆拍板
  • 阿纳海姆的洛杉矶拖鞋

有人建议我使用以下 Cypher,它最终出现在 NPE 中。 Neo4j:Spring Data Neo4j 中的本机 Java API(或等效密码查询)

    //Repository     
    public interface TeamRepository extends GraphRepository<Team>
    {
        @Query("start team=node:teamName({0}) RETURN team")
        List<Team> findByTeamName(String query);
    }

以下调用在调用时会引发 NPE,如下所示:

teamRepository.findByTeamName("The Los Angeles Will be Playing in a state of Golden");

空指针异常:

Exception in thread "main" java.lang.IllegalStateException: Failed to execute CommandLineRunner
    at org.springframework.boot.SpringApplication.runCommandLineRunners(SpringApplication.java:675)
    at org.springframework.boot.SpringApplication.afterRefresh(SpringApplication.java:690)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:321)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:957)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:946)
    at com.directv.service.Sports.main(Sports.java:134)
Caused by: java.lang.NullPointerException
    at org.apache.lucene.util.SimpleStringInterner.intern(SimpleStringInterner.java:54)
    at org.apache.lucene.util.StringHelper.intern(StringHelper.java:39)
    at org.apache.lucene.index.Term.<init>(Term.java:38)
    at org.apache.lucene.queryParser.QueryParser.getFieldQuery(QueryParser.java:643)
4

1 回答 1

0

经过一些试验和错误,我能够解决这个问题。正如@Michael Hunger 指出的那样,这是查询中嵌入空格字符的问题。适当的查询是: @Query("START team=node:teamName('teamName:(*The Los Angeles Will be Playing in a state of Golden*)') RETURN team")

于 2015-07-27T23:35:49.110 回答