问题标签 [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 回答
392 浏览

neo4j - 是否可以将 Neo4j OGM 转换器用作 Spring @Component?

我有一个注释为@Component 的自定义转换器,它依赖于 MyBean,它由 Spring 在启动时通过 @Autowired 注入。

MyEntity 有一个字段 MyObject 由该转换器转换。一旦我从 Neo4j 检索 MyEntity,OGM 就会从 MyObjectToStringConverter 调用 toEntityAttribute。但是,我得到了一个 NPE。似乎 OGM 没有重用我由 Spring 创建的转换器,并且 MyBean 依赖项始终为 NULL。

OGM 是否应该能够从 Spring 上下文中获取我的转换器?

有没有办法通过 OGM 初始化 MyBean?

如果没有,我可以自己注册一个转换器吗?

0 投票
1 回答
1333 浏览

java - Neo4J OGM 中的设置关系属性

我昨天发现了 Neo4j OGM,并迅速创建了一个新项目来测试它是如何工作的。我遇到的一个问题是设置关系属性,因为这对我的项目至关重要。这是一个例子:

房间节点:

连接节点(关系):

}

主要方法:

现在你可以看到我已经在我的 main 方法中设置了长度,但是当我检查http://localhost:7474下的数据库时,它显示了节点之间的关系,但说它没有属性。

这是控制台输出: http: //pastebin.com/CByfmVcR

任何设置属性的帮助将不胜感激。或者是否有一种不同/更简单的方式将对象映射到 neo4J 数据库?

谢谢

0 投票
2 回答
158 浏览

neo4j - Spring Data Neo4j 4 不存储任何数据

我在我的新项目中使用了 neo4j-2.3.1 和 spring-data-neo4j 4。我将所有内容设置为这篇文章(Spring Data Neo4j 4)。但是,我不能将任何数据存储到数据库中。这是我的neo4j配置:

这是 REST api,它只是简单地调用存储库来存储对象:

这是存储库:

这是项目类:

这是转换器类:

在我发了一个 curl 帖子后,一切正常,没有任何异常和错误。然后我去 localhost:7474 获取所有数据,我什么也没得到。这是日志,我做了一个 curl 帖子和 curl 获取。没有任何例外

在此处输入图像描述 在此处输入图像描述 没有例外。有谁知道如何修理它?

0 投票
1 回答
209 浏览

java - Spring数据neo4j 4日期不能投

我正在使用 spring data neo4j 4。我成功存储了对象。但是当我从 neo4j 检索对象时,我得到以下异常:

代码:

例外:

0 投票
1 回答
300 浏览

java - Neo4j-OGM 关系未加载

在我的项目中,我有MapNodes,它们通过关系连接ConnectRelationConenctRelation有一个属性长度。节点及其关系Neo4J毫无问题地保存到数据库中。但是在加载节点时,它relationsList是空的。


地图节点类


连接关系类:


填充和加载方法:

我遇到的问题是 MapNode 中的关系字段在加载节点时为空,即使深度设置为大于 1 也是如此。

提前致谢!

0 投票
1 回答
183 浏览

neo4j - Neo4j - 基于端节点子类类型区分关系

我注意到在 spring-data-neo4j 4 数据模型中使用继承时,超类在加载和区分基于端节点类型的关系时用作鉴别器。有什么办法可以强制 spring-data-neo4j-4 使用子类作为鉴别器吗?

例如,假设我们在左侧有如下的数据模型(类图),在右侧有它的 neo4j 数据库表示。

类图和 neo4j 表示

目前,如果我们有一个 Owner 实体,其代码如下:

spring-data-neo4j-4 框架会自动将 Dog 和 Cat 都映射到 Cats 集合和 Dogs 集合,所以我有两个“狗”(尽管其中一个实际上是猫)和两个“猫,(尽管其中一只实际上是狗)从数据库中加载。如果我从数据模型中删除超类 Pet 和 BaseNodeEntity,那么 Dog 和 Cat 会自动正确映射到它们各自的集合。

有没有办法可以强制 spring-data-neo4j-4 正确映射我的数据模型,或者我会被迫更改我的数据模型?我并不热衷于从我的数据模型中删除超类,因为我有很多重用正在进行,并且添加额外的关系(即,将 OWNS 拆分为 CAT_OWNER 和 DOG_OWNER)同样令人讨厌。

更新

我现在注意到这种行为并不一致。我编写了一个单元测试来测试映射。奇怪的是,有时它会通过,有时它会失败(有时它错误地将猫映射为狗,将狗映射为猫,有时它不会)。手动运行单元测试 10 次给了我以下通过/失败结果。

当然映射行为应该是一致的。这可能是 SDN-4 中的错误吗?

2016 年 5 月 8 日更新

很抱歉延迟更新。我刚刚有机会重新开始这个项目。我已经对此进行了重新测试,并且在最新的稳定 neo4j 版本中得到了相同的结果。

我在我们的测试用例中使用的实际域模型下面附上了。可以在https://github.com/johndeverall/thescene-spa/issues/142看到测试用例的详细信息。测试用例代码为:

测试用例显示的问题

以下方法:

返回一个成员对象,该对象具有一组 createdTags,其中包含 2 个标签和一个实际上是事件的标签。

我的实际域模型如下(未简化为 Dogs 和 Cats):

OGM图

附加信息:

我尝试使用 @NodeEntity 注释来注释除 BaseNodeEntity 之外的所有模型对象。属性被注释。

2016 年 5 月 9 日更新

如果我用存储库上的派生查找器替换 loadMemberByEmailAddressPasswordAccount 的 ogm 代码,我会得到相同的间歇性结果。

0 投票
2 回答
135 浏览

java - Neo4j Java OGM 带锁选择

我正在尝试使用 Java OGM for Neo4j 选择一个路径并锁定该路径中的最后一个节点。

为此,我编写了以下查询:

它选择锁定最后一片叶子的必要路径(通过更改其State属性)。

但是,当我尝试执行此查询时:

我得到一个java.lang.RuntimeException: query() only allows read only cypher. To make modifications use execute()

这样做的正确方法是什么?

0 投票
2 回答
526 浏览

java - Neo4j-ogm 查询路径

在我的 Java 代码中,我有一个查询来匹配树中从根到叶子的最短路径。

但是,当我尝试如下查询时

o包含一个ArrayListof LinkedHashMaps 而不是映射的对象。

我什至无法确定路径元素的标签以及关系的开始和结束节点。

我究竟做错了什么?

0 投票
1 回答
107 浏览

java - 保存具有多个关系的 SDN4 实体时,Neo4j 2.3.1 服务器死机

我正在为指南服务编写应用程序,并且在数字海洋水滴上运行 Neo4j 2.3.1 的 3 服务器集群。我还使用在 Tomcat 下运行的 JSF Web 应用程序中的 Spring Data Neo4j 4.0.0.RELEASE 来编写和查询我的数据。

我有一个节点可能与其他节点有 7 个不同的关系,我已经成功保存了 80 多个实例,但是当我尝试保存节点时,我突然开始在实例 1 主 neo4j 服务器上出现内存不足错误。我将 Neo4j 服务器的内存设置更新为以下内容:

我不再收到 OutOfMemoryError 但现在当我尝试保存节点时服务器出现故障。我可以在服务器失败之前查询数据。我从未在服务器 1 主数据/log/console.log 文件中收到错误消息,但在服务器 2 从属数据/log/console.log 文件中我收到以下消息:

节点实体 Java 代码:

我用来保存的代码是通过 SDN4 GraphRepository 保存的:

GraphRepository 保存:

关于在保存此节点时导致服务器突然开始失败的任何想法?我目前在我的 Neo4j 数据库中有 19957 个节点,其中大部分组成了我的 DateTree。有没有比我目前正在做的更好的方法来保存节点?

TIA

0 投票
1 回答
165 浏览

scala - 如何将 neo4j OGM 与惯用的 Scala 类一起使用?

我想将 Neo4j 的新 OGM 库与惯用的(即案例类、不可变的)Scala 类一起用于我的域对象。

我可以使用其他注释使以下课程与 Neo4j OGM 一起使用吗?由于未找到 @GraphId,以下定义的国家/地区不会持久化。如果我添加一个可变图形 id 成员 var (已经不受欢迎,但是......),那么一个对象将被持久化,但没有 name 属性。

我现在是否坚持使用具有可变属性的类 Java 类?

谢谢!史蒂夫