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

neo4j - 使用 Neo4jSessionFactory.queryForObject (或类似)加载所有相关实体

使用 neo4j-ogm,我编写了以下代码,其中包含两个数据库调用。我希望它只有一个数据库调用。

第一个数据库调用是

  1. neo4jSession.queryForObject(Member.class, query, parameters);

第二个数据库调用是

  1. return (Member)super(find(member);

superreturn session.load(Member.class, member.getId(), 1);

哪里sessionneo4jSession

我进行第二次 API 调用是因为第一次 API 调用只获取节点/对象,而不获取其相关节点/对象。第二个 API 调用刷新节点及其所有关系。

有谁知道我如何通过一个数据库调用有效地完成所有这些工作?

queryForObject 似乎不像许多其他 neo4jSession 方法那样支持可变深度。

0 投票
1 回答
241 浏览

spring - Spring OGM-建模实体

我有这种情况,其中一位访问者向居民创建了一个待处理的访问请求。然后根据居民提供的答复,访问被批准或拒绝。但在创建新请求之前,访客也有可能已获得居民的永久批准访问许可,在这种情况下,我不需要经历审批周期。

我想以一种可以使用继承的方式对我的实体进行建模,其中,待定访问请求关系是从访问者到居民创建的,而批准/不批准是从居民到访问者发生的。

这是通用的 Person 类:

请注意,Entity 类与 spring-OGM 示例中的相同。这是一个设置了关系类型的居民:

和访客:

以下是按顺序排列的通用访问、PendingVisit 和 PermanentlyApprovedVisit 关系:

公共抽象类访问{

在尝试创建 pendingVisit 时,我首先要检查 PErmanentlyApprovedVisit 关系是否已经存在。我正在编写测试,这就是我测试的方式:

最后,这是 ResidentRepository 方法:

但是,当我运行它时,我不断收到这个异常:

我想在这里实现的那种建模有问题吗?我读了另一个线程,这是 Prev 和 Next 的问题:

Neo4j TimeTree REST API 上一个和下一个导航

0 投票
1 回答
127 浏览

java - SDN4 - Neo4j OGM 和 JsonSubType 注释

我遵循了来自 SDN3 的 SDN4 迁移路径,并遇到了此处记录的相同问题:SDN4 - Neo4j OGM - Jackson 2

答案中引用了一个补丁,并提到它将应用于 neo4j-ogm 1.1.1。从那以后,我尝试了 1.1.1 和 1.1.2 版本,但没有成功。这是我的带有 JsonSubType 注释的 SDN 注释实体的示例。我正在使用杰克逊注释 2.6.2。

如果我注释掉 JsonSubTypes 注释,我的单元测试就可以工作。但是,将其放入链接的stackoverflow问题会导致异常。

任何想法,解决方法?在我看来,该补丁尚未应用于 neo4j-ogm 的发行版。

0 投票
4 回答
1485 浏览

python - 在 NeoModel 中创建之前查看节点是否存在

如何在创建节点之前检查它是否存在neomodel?除了过滤器之外还有其他方法可以优化我的代码吗?

0 投票
1 回答
426 浏览

maven - 如何诊断这个 neo4j-ogm / mvn spring-boot:run 问题?

我希望有人能提出一个我可以用来诊断这个的策略。我认为这可能是 spring-boot maven 插件中的一个错误。

我正在开发一个使用 neo4j-ogm 进行持久性的应用程序。

当我在 Eclipse 中启动它或作为可执行 jar 启动它时,应用程序启动并运行得很好。

当我使用它启动它时mvn spring-boot:run它不起作用并抛出以下堆栈跟踪。

关于 spring-boot maven 插件可能做错了什么的任何指示?

附加信息

作为可执行 jar 开始打印输出:

mvn spring-boot:run打印开始:

会话工厂代码

0 投票
2 回答
777 浏览

json - 如何以 GraphJSON 格式而不是树格式返回 Neo4j OGM 实体以进行可视化?

我从 Neo4j OGM(对象图映射)以嵌套树状格式获取 JSON 数据。 http://bl.ocks.org/mbostock/4063550

但是为了可视化复杂的图形,我需要获取以下 graphJSON 格式的 JSON 数据。 http://bl.ocks.org/mbostock/4062045

即,节点和链接分开。

这是为了在使用 Java 执行各种操作后,使用 d3.js 可视化从 Neo4j 中可视化数据。

0 投票
1 回答
306 浏览

neo4j - SDN4 或 neo4j-ogm 性能问题

我编写了一些简单的 java 代码,但在 SDN4 中遇到了一些我在 SDN3 中没有的糟糕性能。我怀疑 find repositories methods depth 参数不能完全按照它应该的方式工作。让我解释一下问题:

这是我的 java 类(这只是一个示例),其中我删除了 getter、setter、contructors,......

第一类是“元素”:

第二个是“属性”

“值”类允许我的用户在元素上为特定属性添加值:

“元素”类确实需要知道它的值,但“属性”类根本不关心值。

一个属性在 InternationalizedProperties 类上有引用,如下所示:

属性与其 InternationalizedProperties 之间的关系实体如下所示:

然后我创建了一个小的 main 方法来创建两个属性和 10000 个元素。我的所有元素都具有第一个属性的特定值,但没有第二个属性的值(它们之间没有关系)。这两个属性都有两个不同的国际化属性。这是一个示例:

最后,在另一个主要方法中,我尝试多次获取第一个属性和第二个属性:

以下是此执行的日志:

获取第二个属性(以及由于 depth=1 而获得的国际化属性)非常快,但获取第一个属性仍然非常缓慢。我知道有很多关系(确切地说是 10000 个)指向第一个属性,但是当我想获得一个具有其国际化属性的属性时,我显然不想获得所有指向它的值。(因为未在 Attribute 类上指定 Set)。

这就是为什么我认为这里存在性能问题。还是我做错了什么?

谢谢你的帮助

0 投票
1 回答
358 浏览

spring-data-neo4j-4 - What are the differences between Spring Data Neo4j 4 and neo4j-ogm?

I notice SDN4 has the concept of repositories and annotations for cypher queries, but this seems not much more than programming style? Neo4j-OGM seems straight forward, easy to set up, with a really practical and efficient API. I'm wondering why both projects exist. Are there any real differences between the two?

Spring Data Neo4j

http://projects.spring.io/spring-data-neo4j/

Neo4j OGM

https://neo4j.com/docs/ogm-manual/current/introduction/

0 投票
1 回答
197 浏览

java - Neo4j OGM 是否适用于接口?

我开发了两组类——第一组只是类,而在第二组中,类派生自接口。两组类相互模仿。它们的存储库也相似。但是,存储库适用于第一组类(节点和关系)。虽然对于第二组类,存储库能够插入记录,但是 findAll 方法失败并且不返回任何记录。

这是存储库的第一组类 -

这是第二组课程 -

我在这里错过了什么吗?或者 Neo4j OGM 是否适用于类(不实现接口)?

整个源代码位于 - https://github.com/mmwaikar/java-neo-ogm-ex(以防万一,它有帮助)。谢谢,马诺伊。

0 投票
0 回答
81 浏览

spring-data-neo4j-4 - 使用 SDN4 意外删除关系

我在我的数据模型中有一个测试失败,之前在将一些 neo4j-ogm 代码转换为使用 spring-data 后通过了该测试。但是,我几乎可以肯定 spring-data-neo4j 不是我遇到的问题的原因。从概念上讲我缺少更多的东西(关于会话或肮脏或其他东西?)

测试的行为是:

以前,节点 A 使用其属性进行了更新,并且在测试执行后,数据库中的节点 A 和节点 B 之间存在关系。

然而,转换后的结果是一样的,只是在第二次保存对象 A 后,数据库中不再存在节点 A 和节点 B 之间的关系(它被删除)。

我可以做些什么来改变这种行为吗?预期的行为是什么?