Java 春季及;neo4j:添加新关系时会删除以前的关系
这是我的用户类:Java 春季及;neo4j:添加新关系时会删除以前的关系,java,spring,neo4j,spring-data-neo4j,Java,Spring,Neo4j,Spring Data Neo4j,这是我的用户类: @NodeEntity 公共类用户{ @格拉希德 私人长id; @财产 私有字符串名称; @财产 私人字符串电子邮件; @财产 私有字符串密码; @财产 私有字符串光链路; @财产 私人整数年龄; @财产 私人国家; @财产 私人性别; @财产 私人串; @财产 私人网络; 私人收藏语言; @关系(type=“HAS_ROLE”,direction=Relationship.OUTGOING) 私人收藏角色; @关系(type=“HAS\u IN\u FRIENDLIST”,d
@NodeEntity
公共类用户{
@格拉希德
私人长id;
@财产
私有字符串名称;
@财产
私人字符串电子邮件;
@财产
私有字符串密码;
@财产
私有字符串光链路;
@财产
私人整数年龄;
@财产
私人国家;
@财产
私人性别;
@财产
私人串;
@财产
私人网络;
私人收藏语言;
@关系(type=“HAS_ROLE”,direction=Relationship.OUTGOING)
私人收藏角色;
@关系(type=“HAS\u IN\u FRIENDLIST”,direction=Relationship.OUTGOING)
私人收藏朋友名单;
@关系(type=“HAS\u IN\u BLACKLIST”,direction=Relationship.OUTGOING)
私人收藏黑名单;
因此,我希望用户与其他用户建立一方关系,即朋友列表中的朋友关系。
在服务级别,我有一种向用户添加好友的方法:
public void addToFriendList(添加用户、添加用户)
抛出UserNotFoundException{
if(whoIsAdded==null)
抛出新的UserNotFoundException(“未找到用户”);
集合friendList=whoAdds.getFriendList();
if(friendList==null)
friendList=新HashSet();
添加(whoIsAdded);
whoAdds.setFriendList(friendList);
userRepository.save(whoAdds);
}
但是,当我使用此方法时,此用户以前的一些关系“HAS_IN_FRIENDLIST”将被删除。
我注意到,whoAdds.getFriendList()方法总是只返回1个用户
如何修复此问题?我无法测试此问题,但我的理解是不支持集合。对于列表,您必须使用其中一个(如指定的) java.util.Vector java.util.List,由java.util.ArrayList支持 java.util.SortedSet,由java.util.TreeSet支持 java.util.Set,由java.util.HashSet支持 阵列
因此,将
收藏更改为设置
如果使用@关系(type=“HAS\u IN\u FRIENDLIST”,direction=Relationship.OUTGOING),会发生什么情况
setter上的注释?请指定您正在使用的SDN版本。@frant.hartm谢谢。我尝试过,但结果是一样的。我发现,当我从数据库加载用户时,好友列表总是只包含一个用户,即使他有多个关系。因此,现在我试图理解为什么会发生这种情况。我不知道如何确定sdn的d版本-在pom.xml中,我刚刚指定了:org.springframework.boot-spring-boot-starter-data-neo4j,您的spring引导版本是?它是1.5.1.RELEASE