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