【问题标题】:Dynamic Spring Data Classes for Neo4J based on an Ontology基于本体的 Neo4J 动态 Spring 数据类
【发布时间】:2020-05-01 10:51:03
【问题描述】:

我必须使用Spring frameworkSpring-Data-Neo4J 创建一个需要与Neo4J 数据库交互的Web 服务。这需要一个静态数据域模型,例如定义的标签、关系、属性。

问题是,我的数据基于Ontology(通过neosemantics 插件),将来可能会被修改。如果应用程序可以自动采用它,那就太好了。这样,只需编辑本体即可扩展数据模型,无需额外的编程知识。

这是否意味着我必须动态生成 Spring 数据类(基于 Ontology)或者是否有更好的方法来使用 Spring-Data-Neo4J 来实现这一点(或者我应该使用不同的框架)?

【问题讨论】:

    标签: neo4j ontology spring-data-neo4j


    【解决方案1】:

    当然,您可以想出一种方法来从本体生成一组类。但这可能会带来比它解决的问题更多的问题。

    一组自动生成的类可能与您的用例的数据模型不对应。确定合适的数据模型仍然需要人工。

    此外,新类可能与现有客户端代码不兼容。您可能必须将现有数据库迁移到新的数据模型。解决所有需要人工的问题。

    【讨论】:

      【解决方案2】:

      我最终使用了 Java neo4j driver 而不是 Spring-Data-Neo4j 和一个只有字段 id、标签列表和属性映射的通用节点类实现。在数据库中创建节点之前,可以对照本体检查设置的标签和属性。通过这种方式,我可以通过仅修改本体来强制执行一组特定的节点标签和属性,而无需生成特定的 Spring-Data-Neo4j 数据类。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-18
        • 2012-11-13
        • 1970-01-01
        • 2012-03-15
        • 1970-01-01
        • 2020-02-10
        相关资源
        最近更新 更多