Neo4j 如何在SDN 4.0中CRUD@RelationshipEntity

Neo4j 如何在SDN 4.0中CRUD@RelationshipEntity,neo4j,spring-data,spring-data-neo4j,Neo4j,Spring Data,Spring Data Neo4j,例如,如果我有一个丰富的关系实体 @NodeEntity public class Actor { Long id; private Role playedIn; } @RelationshipEntity(type="PLAYED_IN") public class Role { @GraphId private Long relationshipId; @Property private String title; @StartNode pri

例如,如果我有一个丰富的关系实体

@NodeEntity
public class Actor {
    Long id;
    private Role playedIn;
}

@RelationshipEntity(type="PLAYED_IN")
public class Role {
    @GraphId   private Long relationshipId;
    @Property  private String title;
    @StartNode private Actor actor;
    @EndNode   private Movie movie;
}

@NodeEntity
public class Movie {
    private Long id;
    private String title;
}
@Repository
public interface ActorRepository extends GraphRepository<Actor>{

}
例如,要对这两个
@NodeEntity
进行CRUD,只需分别创建一个
@Repository

@NodeEntity
public class Actor {
    Long id;
    private Role playedIn;
}

@RelationshipEntity(type="PLAYED_IN")
public class Role {
    @GraphId   private Long relationshipId;
    @Property  private String title;
    @StartNode private Actor actor;
    @EndNode   private Movie movie;
}

@NodeEntity
public class Movie {
    private Long id;
    private String title;
}
@Repository
public interface ActorRepository extends GraphRepository<Actor>{

}
我的问题是,我们如何为
@RelationshipEntity
角色执行CRUD


我们是否为
角色创建一个
@存储库
?(我试过了,它不起作用)

SDN自动为@RelationshipEntity执行CRUD,因为没有开始和结束节点,您无法在Neo4j中存储关系。

SDN自动为@RelationshipEntity执行CRUD,因为没有开始和结束节点,您无法在Neo4j中存储关系。

MicTech是正确的

RelationshipEntity由图中的边表示,而不是节点,当前存储库实现仅适用于可以作为节点持久化的对象。这不会给您带来任何问题

OGM将保留您显式保存的对象中的所有可访问对象(除非您告诉它不要保存)。此行为意味着,无论连接对象之间的边是由RelationshipEntity显式表示还是由NodeEntity实例之间的直接引用隐式表示,只要保存NodeEntity,连接对象之间的边就会自动创建/更新

OGM的会话对象的限制性比使用SDN的存储库方法时稍微小一些,因为您可以调用

session.save(…)

在一个注释为RelationshipEntity的对象上,它将按照您的预期进行操作。但是,实际上没有必要这样做:保存RelationshipEntity的开始或结束节点将确保图形正确持久化。

MicTech是正确的

RelationshipEntity由图中的边表示,而不是节点,当前存储库实现仅适用于可以作为节点持久化的对象。这不会给您带来任何问题

OGM将保留您显式保存的对象中的所有可访问对象(除非您告诉它不要保存)。此行为意味着,无论连接对象之间的边是由RelationshipEntity显式表示还是由NodeEntity实例之间的直接引用隐式表示,只要保存NodeEntity,连接对象之间的边就会自动创建/更新

OGM的会话对象的限制性比使用SDN的存储库方法时稍微小一些,因为您可以调用

session.save(…)


在一个注释为RelationshipEntity的对象上,它将按照您的预期进行操作。但是,实际上没有必要这样做:保存RelationshipEntity的开始或结束节点将确保图形正确持久化。

我确实先保存了一个演员和一部电影,然后尝试使用startNode演员和结束节点电影保存角色。我确实先保存了一个演员和一部电影,然后尝试用startNode演员和endNode电影保存角色。谢谢提供详细信息。这真的很有帮助。谢谢你提供的细节。这真的很有帮助。