【问题标题】:Neo4J cascade save using Spring DataNeo4J 级联保存使用 Spring Data
【发布时间】:2023-02-23 00:18:10
【问题描述】:

我将 Neo4J 与 Spring Data 一起使用,我有多个具有相互关系的节点,我需要第一次保存它们。

我是否需要先保存每个节点,然后它们更新关系并再次保存?或者有一种方法可以告诉 Neo4J 将它们全部保存下来。

例如:

我有一个名为 Car 的节点,其中包含名为 Wheels 的节点列表。

@Node
public class Car {

    public String name;

    @Relationship(type="HAS_WHEEL")
    public <List> wheels;

}

@Node 
public class Wheel{

    public String name;

    @Relationship(type="HAS_CAR")
    public Car car;

}

在这种情况下,我是否需要先保存 Car 和 Wheels,然后使用从 save 方法返回的 Car 和 Wheels 更新关系?

或者我可以只保存装有 Wheels 的 Car 并告诉 neo4J 级联保存吗?

【问题讨论】:

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


    【解决方案1】:

    在 Java 世界中“连接”轮子后,仅保存 Car 就足够了。

    Spring Data Neo4j 将在持久化实体时级联所有可达的条目。 从理论上讲,也可以只保存一个Wheel,因为这也会以另一种方式级联到Car,并从那里级联到其他三个Wheels

    上面模型的两个注意事项:

    1. 反思一下你是否真的需要双向映射。如果映射图中可以有圆圈,SDN 将选择不同的查询样式。双向关系就是这种情况。
    2. 如果需要,我会使用相同的关系类型,并在 Wheel 类的 Car 关系上放置类似 @Relationship(type="HAS_WHEEL", direction = Direction.INCOMING) 的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 2017-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多