问题标签 [neo4j-ogm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
316 浏览

java - Neo4j OGM 图覆盖事务中的更改

我们觉得我们终于对我们在 neo4j-ogm 中看到的奇怪行为有了一个解释。我们最初认为它与 equals/hashcode 实现有关,但事实并非如此。

似乎 ogm 正在保留图形的缓存副本,并且在事务中所有检索都指向同一个内存对象。

我们创建了一个单元测试来演示该行为(下面是一些不起作用的伪代码)

这对我们来说似乎是个问题。

我们之前已经观察到这一点,并通过更改检索到的对象的深度来消除它(以防止它们的图形恢复内存中的内容),但是当它不使用我们的密码查询时,可定制性较差。

请告诉我们如何避免这个问题!

0 投票
1 回答
153 浏览

java - 为什么 Neo4j OGM 删除方法返回 void?

我注意到 Neo4j OGM 文档http://neo4j.com/docs/ogm/java/stable/中所示的 GenericService 的删除方法返回 void。SDN 的 CrudRepository 的各种删除方法也是如此(http://docs.spring.io/spring-data/data-neo4j/docs/4.0.0.RELEASE/api/)。甚至 session.delete 方法也返回一个 void。

为什么会这样?int 的返回类型(关于删除了多少节点)或布尔值(指定删除操作是否成功)会更好吗?

0 投票
1 回答
264 浏览

spring - spring data neo4j 3.x 升级到 4.x 关系操作

在 Spring data neo4j 3.x 中创建两个节点之间的关系,并且关系包含一组属性,这些属性早先用于通过 apis 实现这一点

但是迁移后我没有找到上面的api

根据文档说

//关系创建是可能的,但新的api我如何实现以下用例

1.如何避免重复创建关系?

2.获取两个节点之间的关系?

2.删除两个节点之间的关系?

0 投票
1 回答
363 浏览

neo4j - Neo4j OGM 返回 No Host 异常

我在我的 macbook 上本地运行 neo4j-community-2.2.5。我正在尝试使用 neo4j-ogm 版本连接到代码:1.1.2

这是会话工厂:

我有一个实体类:

服务 :

通用服务:

调用代码:

我在 eclipse 上将代码作为简单的 java 进程运行,而不是在任何应用程序服务器上运行。

这是带有跟踪的完整日志:

有人可以建议我哪里出错了。在此之前,我使用的代码库完全不同

但后来我意识到,当我想连接到在 prod 环境中运行的 neo4j 服务器时,这不是正确的方法。我想启动服务器,因此同时通过 java 和 Ruby 客户端进行连接。

谢谢!

0 投票
1 回答
341 浏览

neo4j - 为什么这个 neo4j-ogm 代码会产生“无效语法”?

我有一些意外失败的 spring-data-neo4j / ogm 代码。

当我深入研究 ogm 代码时,我可以看到引发了以下异常。这是预期的吗?

0 投票
0 回答
76 浏览

spring-data-neo4j-4 - SDN4 - 删除操作后存储库查询未命中数据库并在加载时返回陈旧数据

我的一个单元测试似乎返回了陈旧的数据。该测试正在测试我是否可以从活动中删除某些门票类型(门票已售出)。我留下了评论以显示代码中出了什么问题。

// 此时可以在 localhost:7474 上看到一种票证类型(我们所期望的)

// 此时可以在 localhost:7474 上看到两种票证类型(我们所期望的)

// 此时可以在 localhost:7474 上看到一种票证类型(我们所期望的)

// 即使端口 7474 上的数据库显示 1 个票证类型,即使前面的代码仅返回 1 个票证类型,此代码也会加载两种票证类型。

eventService.loadEventByDomainSpecificId(eventId) 是一个@Service,它简单地调用如下所示的存储库。服务没有缓存。

0 投票
0 回答
296 浏览

neo4j - Neo4j 节点中的多个几何属性

首先,这是我的堆栈描述: 

  • GrapheneDB 上的 Neo4j 2.3.0 + Neo4j 空间插件 0.15
  • 我的 PC 上的 Ninja Framework 5.2.1 java 服务器
  • Neo4j-OGM 1.1.3 用于实体映射
  • 用于土工材料的 Geotools 14.0
  • 用于 REST 查询的 ApacheHttp

我有 Unit 节点,这些节点使用属性“位置”进行地理定位。位置是几何图形(POINT、CIRCLE 或 POLYGON)。

我在这个属性上创建了一个图层和一个索引。我可以添加一个地理定位单元。这运作良好。这是我以前的问题,我解决了它,因为它隐藏了真实的问题。

现在,我需要定义一些其他地理对象,例如“path”、“detectionZone”或“actionZone”。操作通常是“哪个其他单元在 actionZone 中?” 或“单元路径是否穿过检测区域?”

我怎样才能索引这些数据?每个属性一个索引?或者“wkt”属性的索引和 detectionZone、actionZone 和路径的新节点,具有 wkt 属性?

我需要为每个地理概念创建一个图层吗?还是一个独特的“geom”层将所有与空间相关的节点分组?

0 投票
0 回答
492 浏览

neo4j - 当使用 SDN 4 的相同两个类之间存在多个关系时,关系更新不如预期

我有一个使用 Spring Data Neo4j 4(4.0.0.RELEASE 和 Neo4j Community Server 2.2.5)的 Spring Boot 应用程序。我正在使用 neo4j-ogm 库 (1.1.4-SNAPSHOT) 的最新快照版本作为 SDN 4 的依赖项。当存在多个关系时(不使用关系实体)由相同的两个节点实体类之间的关系类型区分。

失败的集成测试的两个节点实体类是:

集成测试从数据存储中已有 ONE 关系的两个节点开始

启动数据存储内容

我本来希望结果是

预期的数据存储内容

但实际上

实际数据存储内容

所以出乎意料 - 至少对我来说 - 在创建和保存新对象之前存在的节点之间创建了新的关系。

当从数据存储中已有的多个 (EEE)<-[:ONE]-(d) 关系开始时,每个 (d) 都会在创建和保存新的 TypeD 对象时与 (EEE) 建立新的 [:MANY] 关系。

真正的应用场景之一是用户所有权和与其他项目的许可关系。所以 TypeE 是一个用户,而 TypeD 是一个拥有或许可的项目。用户可以拥有或许可多个相同类型的项目。一个项目只能有一个所有者,但它可以被许可给多个用户。因此,测试中的关系将是 ONE = 所有者和 MANY = 被许可人。

这里有错误还是有人看到类似的东西?

0 投票
1 回答
177 浏览

java - SDN4 是否允许集合类型与同一实体的多个关系?

当我尝试获取集合对象的不同关系类型时,即使关系类型不是集合关系类型,集合属性也会检索所有相同的实体类型。这是一个错误吗?

实体 Demo 包含两个引用用户实体的字段:用户和用户

当我用 1 个“MY_USER”和 2 个“DEMO_USERS”保存演示时,没问题。但是当我通过组 id 找到演示时,“DEMO_USERS”返回 3 个用户。

输出

0 投票
1 回答
618 浏览

java - SDN4 java.lang.ClassCastException:使用 AttributeConverter 时 java.lang.Integer 无法转换为 java.lang.Long

首先,我可能会在这里做一些不必要的事情,但我相信这个问题与此无关。我正在尝试ZonedDateTime使用此转换器类将值存储在 neo4j 中:

保存值似乎工作正常,但是在检索时(例如使用 findOne)我得到以下信息:

这是一个错误还是我在它应该如何工作时犯了一个错误?