`

Neo4j: Create multiple relationships between the same two nodes

 
阅读更多

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

 

 

 

分享到:
评论

相关推荐

    vue-neo4j:vue使用D3对neo4 j进行可视化-源码开发技术-其它

    Neo4j Vue 安装步骤 克隆或下载该库到本地 下载neo4j并安装到本地,启动neo4j服务 进入到该工程的根目录,输入命令:npm run update进行npm包的导入 使用命令:npm run dev启动该工程 默认端口是:8081 neo4j账号...

    vue-neo4j:vue使用D3对neo4j进行可视化源码开发技术-其它

    Neo4j Vue 安装步骤 克隆或下载该库到本地 下载neo4j并安装到本地,启动neo4j服务 进入到该工程的根目录,输入命令:npm run update进行npm包的导入 使用命令:npm run dev启动该工程 默认端口是:8081 neo4j账号...

    movies-java-spring-data-neo4j:使用Spring Data Neo4j的Neo4j电影示例

    电影示例应用 如何一起使用Spring Boot,Spring Data和Neo4j。 Spring Data Neo4j可以在基于Spring的应用程序中方便地集成Neo4j。 它提供了对象图映射(OGM)功能以及Spring Data项目共有的其他功能。 笔记该项目...

    neo4j-jdbc:带有BOLT协议的Neo4j 3.x的Neo4j JDBC驱动程序

    该驱动程序支持各种类型的数据库传输: 通过使用jdbc:neo4j:bolt://&lt;host&gt;:&lt;port&gt;/的Bolt协议(3.0.x至3.2.x) 通过使用jdbc:neo4j:http://&lt;host&gt;:&lt;port&gt;/的HTTP协议(2.x +) 展望未来,还将支持: 直接文件连接...

    vue-neo4j:vue使用D3对neo4j进行可视化

    Neo4j Vue安装步骤克隆或下载该库到本地下载neo4j并安装到本地,启动neo4j服务进入到该工程的根目录,输入命令:npm run update进行npm包的导入使用命令:npm run dev启动该工程默认端口是:8081 neo4j账号信息: ...

    neo4j-community-3.5.12-windows.zip

    **Neo4J社区版3.5.12 Windows安装与使用指南** Neo4J是一款流行的图数据库管理系统,尤其适用于处理复杂关系数据。图数据库利用图形结构来存储和查询数据,其核心理念是节点、边(关系)和属性,这使得在处理网络、...

    bitnami-docker-neo4j:Neo4j的Bitnami Docker映像

    DR $ docker run --name neo4j bitnami/neo4j:latestDocker撰写$ curl -sSL https://raw.githubusercontent.com/bitnami/bitnami-docker-neo4j/master/docker-compose.yml &gt; docker-compose.yml$ docker-compose up...

    sails-restful-neo4j:SailsWaterline RESTful Neo4j 适配器

    宁静的 Neo4j 2.1+ 用于 Neo4j 宁静 apis 的 Sails.js 水线适配器安装从 NPM 安装。 $ npm install sails-restful-neo4j兼容性这与风帆 0.10 及更高版本兼容帆配置将以下配置添加到 config/connections.js 文件中: ...

    email2neo4j:使用一个简单的命令将您的电子邮件导入图表

    imap2neo4j: imap2neo4j imapServer imapUsername imapPassword imapMailbox neo4jServer [neo4jUsername] [neo4jPassword] [paging, eg import by batches of 1000] [specific range of messages, eg 50

    Nested-Class-Models-Rest-Api-Neo4j:在休息环境中作为 neo4j 扩展实现的嵌套类模型

    通过在 conf/neo4j-server.properties 中添加一行来配置 Neo4j: org.neo4j.server.thirdparty_jaxrs_classes=org.neo4j.example.unmanagedextension=/example 启动 Neo4j 服务器。 写评论 curl ...

    Sublime-Neo4j:用于运行 Neo4j Cypher 查询的 Sublime 插件

    Sublime Text 2/3 插件:Neo4j Sublime 是最好的跨平台编辑器之一,所以我想为什么不创建一个简单的 Neo4j 插件呢?... 编辑用户名和密码(默认为neo4j:neo) 结果显示在控制台中(Ctrl+~)打开C

    egg-neo4j:Neo4j鸡蛋插件

    egg-neo4j Neo4j用于鸡蛋框架。安装$ npm i egg-neo4j --save用法// {app_root}/config/plugin.jsexports . neo4j = { enable : true , package : 'egg-neo4j' ,} ;配置// {app_root}/config/config.default....

    schemaless-graphql-neo4j:将无类型和动态GraphQL查询转换为Cypher

    schemaless-graphql-neo4j 将无类型的动态GraphQL查询转换为Cypher。 签出,以更好地查看您可以编写的查询。入门$ npm install schemaless-graphql-neo4j :warning: 图书馆尚未发布操场您可以开始使用开发人员游乐场...

    nodejs-on-neo4j:Neo4j上的NodeJS的简单PoC

    **Node.js on Neo4j: 在图形数据库上构建应用** 标题中的"nodejs-on-neo4j"指的是一项使用Node.js与Neo4j图形数据库交互的实践项目。这个项目通常涉及利用Node.js的灵活性和Neo4j的强大图数据处理能力来开发应用...

    neo4j:所有人的图表

    【标题】"neo4j:所有人的图表"指的是开源图数据库管理系统Neo4j,它将数据以图形结构的形式存储和处理,便于理解复杂的关系。在信息化时代,数据之间的关联性日益增强,图数据库如Neo4j应运而生,成为理解和分析...

    Beginning.Neo4j.1484212

    Using this book, you'll get everything up and running, and then learn how to use Neo4j to build up recommendations, relationships, and calculate the shortest route between two locations. With example ...

    Laravel开发-neo4j-php-ogm

    'Neo4j' =&gt; Neo4j\OGM\Facades\Neo4j::class, ], ``` 5. **配置服务**:在`app/Providers/AppServiceProvider.php`的`boot`方法中加载配置文件和启动Neo4j客户端: ```php public function boot() { $this-&gt;app-&gt;...

    spring-graph-neo4j:Neo4j的春天

    标题中的“spring-graph-neo4j:Neo4j的春天”暗示了我们将探讨Spring框架与图数据库Neo4j的结合使用。在Java开发领域,Spring框架是一个广泛使用的开源框架,它提供了一整套用于构建企业级应用的服务和工具。而Neo4j...

    NBD_Tutorials_Neo4J:PJATK NDB教程的Neo4J分配

    【标题】:“NBD_Tutorials_Neo4J:PJATK NDB教程的Neo4J分配” 【描述】:“NBD_Tutorials_Neo4J”指的是一个关于使用Neo4J数据库进行数据处理和分析的教程,特别关注的是与PJATK(Probabilistic Joint Anomaly ...

    docker-neo4j:运行 Neo4j 容器的镜像

    Neo4j Neo4j 是一个高度可扩展、健壮(完全 ACID)的原生图形数据库。 Neo4j 被全球数以千计的领先企业、初创公司、企业和政府用于任务关键型应用程序。 使用存储库上的 Dockerfile,您就可以使用 docker neo4j ...

Global site tag (gtag.js) - Google Analytics