您的位置:首页 > Web前端 > Node.js

Neo4j: Create multiple relationships between the same two nodes

2015-06-03 14:40 591 查看

In my case, I want to build a addreebook in neo4j, which a person has mutiply cellphones and maybe some cellphones have the same concacter with same phone number but different nicknames. such as

user A has two cellphones  C1, C2,

C1 18190752225 wife
C2 18190752225 老婆

 

I model this with mutiply relationsips between two nodes.

 

User A   -----(C1,wife)--------------->UserB(18190752225)

       \

         \

           -------(C2,老婆)--------------->UserB(18190752225)

 

The source codes

@NodeEntity
@JsonAutoDetect
@JsonIgnoreProperties(ignoreUnknown = true)
public class User {
private static final Logger logger = Logger.getLogger(User.class.getName());

@Indexed
private String userId;

@Indexed
private String nickname;

private String realname;

private byte sex;

private byte type; // common user or businesses

private String tags;// personal tags

@Indexed(unique = true)
private String cellphone;

private String cellphoneID;

private byte status;

private float credit;

private boolean registered;

@GraphId
private Long nodeId;

@Labels
private Set<String> lables;

@RelatedToVia
Set<Knowing> knows;

 

 

@RelationshipEntity(type = "knows")
public class Knowing {
private static final Logger logger = Logger.getLogger(Knowing.class.getName());
@GraphId
Long relationshipId;
String cellphoneID;
String nickName;

@StartNode
User user;
@EndNode
User contacter;

 

user.addKnowing(friendInDB, duser.getCellphoneID(), friend.getNickname());

 

But this operation can not add the second relationships between  UserA  and  UserB.

 

After googling, I found

Note

Spring Data Neo4j ensures by default that there is only one relationship of a given type between any two given entities. This can be circumvented by using the createRelationshipBetween() method with the allowDuplicates parameter on repositories or entities.

But, in my codes it doesn't work at all.

Knowing r = template.createRelationshipBetween(user,
friendInDB, Knowing.class, "knows", true);
r.setCellphoneID(duser.getCellphoneID());
r.setNickName(friend.getNickname());
template.save(r);

 

 

 

 

 

Preferences

http://stackoverflow.com/questions/18403802/can-a-node-contain-a-collection-of-relationships-with-the-same-end-node

 http://stackoverflow.com/questions/18392393/unable-to-create-more-than-2-same-relations-between-two-nodes

 

 

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: