【问题标题】:Cypher query vs cypher dsl in spring data neo4j春季数据neo4j中的Cypher查询与cypher dsl
【发布时间】:2014-05-24 06:03:59
【问题描述】:

我想了解Spring data 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);  

就我认为静态查询而言,上述方法效果很好。但现在我需要使用其他方式来根据我的需要生成密码查询!然后我遇到了 neo4j dsl 库,它看起来像我的要求的解决方案。
参考:link-1link-2

我的问题是:

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

谢谢

【问题讨论】:

    标签: java neo4j cypher spring-data-neo4j dynamicquery


    【解决方案1】:
    1. 更新到 3.0.1.RELEASE
    2. 可以使用 cypher DSL
    3. 由于注解是编译时,而 Cypher DSL 是运行时,因此您不能在那里使用它们,但是
    4. 您可以从 CypherDSLRepository 继承,它为您的存储库添加了一些不错的方法

    【讨论】:

    【解决方案2】:

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

    Cypher-DSl https://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-queries-and-custom-mappings 从 DSL 构建的所有语句都可以传递到 Neo4j 模板。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-12
      • 1970-01-01
      • 1970-01-01
      • 2015-11-01
      • 2017-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多