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电影保存角色。谢谢提供详细信息。这真的很有帮助。谢谢你提供的细节。这真的很有帮助。