春季数据neo4j中的Cypher查询与Cypher dsl



我想了解Spring数据neo4j框架中的neo4j-dsl推荐
到目前为止,我曾经创建从GraphRepositoryNamedIndexRepository等扩展的存储库接口,并用@Query注释的自定义密码查询编写我的自定义方法,如下所示:

@Query(value="START root=node:__types__(className='com.data.EntityNode') WHERE root.id={0} and "
        + "root.type={1} return root")  
T findByIdAndType(String id, String type);  

就我所考虑的静态查询而言,上面的方法工作得很好。但现在我需要使用其他方式,根据需要生成密码查询!。然后我发现了neo4jdsl库,它看起来像是我的需求的解决方案
参考:链接-1链接-2

我的问题是:

  1. 在Spring数据neo4j中使用neo4j dsl-lib可以吗(我使用的是v2.1.0 RELEASE)?或
  2. 对于给定的情况集,有没有其他方法可以在spring数据neo4j中生成动态密码查询?更有趣
  3. 是否可以从cypher dsl生成查询并将其传递到我的自定义存储库接口,执行它们并获得结果(我指的是@Query值)?因为如果是的话,那么我就不必对现有的设计进行重大更改

感谢

  1. 更新至3.0.1.RELEASE
  2. 使用密码DSL是可以的
  3. 由于注释是编译时的,而Cypher DSL是运行时的,所以您不能在那里使用它们,但是
  4. 您可以继承CypherDSLRepository,它为您的存储库添加了一些不错的方法

不是答案,而是一些反馈:

Cypher DSlhttps://github.com/neo4j-contrib/cypher-dsl已于去年重新启动,现在是Spring Data Neo4j 6不可或缺的一部分。

我们的新文档发现了一个例子:https://docs.spring.io/spring-data/neo4j/docs/6.0.5/reference/html/#faq.custom-查询和自定义映射所有从DSL构建的语句都可以传递到Neo4j模板。

我希望有人觉得这很有用。

最新更新