Spring 数据 neo4j 4:RelationshipOperationsRepository
Spring data neo4j 4: RelationshipOperationsRepository
在旧版本的 SDN 中,我们有以下存储库接口
org.springframework.data.neo4j.repository.RelationshipOperationsRepository;
public interface UserRelationRepository extends GraphRepository<UserEntity>, RelationshipOperationsRepository<UserEntity> {
MakeFriend rel = userRepository.getRelationshipBetween(startUser, endUser, MakeFriend.class, RelTypes.FRIEND.name());
if (rel != null) {
startUser.getFirstname() + " + " + endUser.getFirstname());
}
userRepository.createRelationshipBetween(startUser, endUser, MakeFriend.class, RelTypes.FRIEND.name());
userRepository.createRelationshipBetween(endUser, startUser, MakeFriend.class, RelTypes.FRIEND.name());
但是当前版本不支持。在 SDN 中实现 createRelationshipBetween 或 getRelationshipBetween 等功能的最佳方式是什么?
SDN 4 不支持使用 API 管理低级图形操作。
相反,要执行的图形操作是从您的域模型 classes 以及您对它们所做的操作中推断出来的。
比如创建一个User
class如下:
class User {
List<User> friends = new ArrayList();
}
如果您现在在 friends
列表中添加或删除用户并通过标准存储库方法以正常方式保存用户,这将自动实现您需要的 - 适当的关系将是 added/removed.您不必告诉 SDN 要做什么,因为 ORM/OGM 的目的是让您远离底层数据模型及其实现细节,并允许您操作域模型本身。
如果你真的需要直接在图上执行这些低级操作,你可以使用带有查询方法的 Cypher。
您可以找到有关 SDN 4.1 的更多信息here
在旧版本的 SDN 中,我们有以下存储库接口
org.springframework.data.neo4j.repository.RelationshipOperationsRepository;
public interface UserRelationRepository extends GraphRepository<UserEntity>, RelationshipOperationsRepository<UserEntity> {
MakeFriend rel = userRepository.getRelationshipBetween(startUser, endUser, MakeFriend.class, RelTypes.FRIEND.name());
if (rel != null) {
startUser.getFirstname() + " + " + endUser.getFirstname());
}
userRepository.createRelationshipBetween(startUser, endUser, MakeFriend.class, RelTypes.FRIEND.name());
userRepository.createRelationshipBetween(endUser, startUser, MakeFriend.class, RelTypes.FRIEND.name());
但是当前版本不支持。在 SDN 中实现 createRelationshipBetween 或 getRelationshipBetween 等功能的最佳方式是什么?
SDN 4 不支持使用 API 管理低级图形操作。
相反,要执行的图形操作是从您的域模型 classes 以及您对它们所做的操作中推断出来的。
比如创建一个User
class如下:
class User {
List<User> friends = new ArrayList();
}
如果您现在在 friends
列表中添加或删除用户并通过标准存储库方法以正常方式保存用户,这将自动实现您需要的 - 适当的关系将是 added/removed.您不必告诉 SDN 要做什么,因为 ORM/OGM 的目的是让您远离底层数据模型及其实现细节,并允许您操作域模型本身。
如果你真的需要直接在图上执行这些低级操作,你可以使用带有查询方法的 Cypher。
您可以找到有关 SDN 4.1 的更多信息here