Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java8和Spring数据Neo4j应用程序查询_Neo4j_Spring Boot_Java 8_Spring Data Neo4j 4_Neo4j Ogm - Fatal编程技术网

Java8和Spring数据Neo4j应用程序查询

Java8和Spring数据Neo4j应用程序查询,neo4j,spring-boot,java-8,spring-data-neo4j-4,neo4j-ogm,Neo4j,Spring Boot,Java 8,Spring Data Neo4j 4,Neo4j Ogm,我有一大堆关于Java8和SDN4的问题。我在Neo4j v3.0中创建了一个模型,使用了一些Cypher查询,现在开始创建Spring引导应用程序。当我开始用Java编写类时,我也开始重新思考我的一些模型。以下是我脑海中的一些问题(我还没有找到一个例子来解释这一点): 您是否需要使用Java接口和SDN?例如,我会编写一个产品接口,然后让我的产品实现它,但使用标签时是这样做的吗 这在某种程度上与我关于继承的问题有关——我通常会有一个ProductFamily,我的Product将从中继承。在数

我有一大堆关于Java8和SDN4的问题。我在Neo4j v3.0中创建了一个模型,使用了一些Cypher查询,现在开始创建Spring引导应用程序。当我开始用Java编写类时,我也开始重新思考我的一些模型。以下是我脑海中的一些问题(我还没有找到一个例子来解释这一点):

  • 您是否需要使用Java接口和SDN?例如,我会编写一个
    产品
    接口,然后让我的产品实现它,但使用标签时是这样做的吗
  • 这在某种程度上与我关于继承的问题有关——我通常会有一个
    ProductFamily
    ,我的
    Product
    将从中继承。在数据库级别,它被建模为
    (:Product)-[PartOf]->(:ProductFamily)
    ,但在代码中,它们不是超级/子类
  • 有在图形上下文中使用泛型的例子吗
  • 在Java中,有没有一种方法可以定义节点可以具有哪些关系及其方向的约束
  • 我知道可能没有一个正确的答案,但网上的宝贵信息很少,所以希望在这里得到启发

  • 如果您有一个用
    @NodeEntity
    注释的产品接口,那么除了实现类上的标签之外,您还将有
    产品
    标签,我假设这就是您想要的。如果您的接口没有注释,那么您的实现类将不会从中继承标签

  • 不确定你的意思-如果你说你有一个
    ProductFamily
    ,它继承自
    Product
    ,但在代码中它不是一个超级/子类? 根据您的图形模型,如果您想要
    (:Product)-[PartOf]>(:ProductFamily)
    ,那么您将拥有一个
    Product
    类,该类维护对
    ProductFamily
    类的引用,并且该引用用
    @Relationship
    注释。如果
    Product
    类继承自
    ProductFamily
    ,则持久化
    Product
    将产生两个标签-
    Product
    ProductFamily
    ,因为
    Product
    是-a
    ProductFamily

  • 你如何看待自己使用泛型——答案真的取决于此。有些情况得到支持,有些情况不支持(目前不支持的一个例子是)

  • 是,通过接受
    类型
    方向
    @关系
    注释。请注意,此注释仅约束您的域模型,但您可以通过自定义查询在另一个方向上创建关系来很好地忽略这一点

  • 如果您有一个用
    @NodeEntity
    注释的产品接口,那么除了实现类上的标签之外,您还将有
    产品
    标签,我假设这就是您想要的。如果您的接口没有注释,那么您的实现类将不会从中继承标签

  • 不确定你的意思-如果你说你有一个
    ProductFamily
    ,它继承自
    Product
    ,但在代码中它不是一个超级/子类? 根据您的图形模型,如果您想要
    (:Product)-[PartOf]>(:ProductFamily)
    ,那么您将拥有一个
    Product
    类,该类维护对
    ProductFamily
    类的引用,并且该引用用
    @Relationship
    注释。如果
    Product
    类继承自
    ProductFamily
    ,则持久化
    Product
    将产生两个标签-
    Product
    ProductFamily
    ,因为
    Product
    是-a
    ProductFamily

  • 你如何看待自己使用泛型——答案真的取决于此。有些情况得到支持,有些情况不支持(目前不支持的一个例子是)

  • 是,通过接受
    类型
    方向
    @关系
    注释。请注意,此注释仅约束您的域模型,但您可以通过自定义查询在另一个方向上创建关系来很好地忽略这一点


  • 非常感谢。关于(2)和(3),我的想法是,我可以将基于ProductFamily的集合作为泛型使用,即使我在查询中有返回的产品。大多数属性在
    ProductFamily
    类中定义,而
    Product
    类仅具有特定于它的属性。例如,用户查询所有支持特定功能的
    产品
    s,如果它是一个全系列的功能,则我可以返回
    ProductFamily
    ,如果它不是,则返回一些特定的
    产品
    s,但我的集合是相同的。希望这有意义!是的,有可能,尽管产品节点上有两个标签(产品和产品系列),谢谢!关于(2)和(3),我的想法是,我可以将基于ProductFamily的集合作为泛型使用,即使我在查询中有返回的产品。大多数属性在
    ProductFamily
    类中定义,而
    Product
    类仅具有特定于它的属性。例如,用户查询所有支持特定功能的
    产品
    s,如果它是一个全系列的功能,则我可以返回
    ProductFamily
    ,如果它不是,则返回一些特定的
    产品
    s,但我的集合是相同的。希望这有意义!是的,有可能,但产品节点上有两个标签(产品和产品系列)