问题标签 [spring-data-neo4j]

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 回答
93 浏览

neo4j - 来自继承的 @NodeEntity 的索引不返回预期结果

我有一个共同的实体类:

一个扩展 Entiy 类的 Employee 类:

我在测试中注意到:

不返回任何值,而

两者都按预期返回。

我尝试将“id”的名称更改为其他文字,并使用 1(数字)和“1”(字符串)进行搜索,但情况仍然相同。我怀疑它与数值有关。

所以我想知道我是否以错误的方式使用@Indexed?

使用:neo4j-version:1.8 spring-data-neo4j.version:2.1.0.RC4

0 投票
1 回答
532 浏览

neo4j - 一个简单用例上的 Neo4j 节点持久性问题

我目前正在实施一些测试样本来学习 Neo4j 和 Spring 数据,感谢 cineast 项目和其他样本,如 spring-data hello-worlds ...

不幸的是,我现在面临一个我不明白的问题,即使我已经在我的代码和其他示例代码上的 eclipse 调试器上花费了一些时间来尝试编译并找到解决方案。这个问题对我来说尤其困难,因为我无法验证 Neo4j 的持久性,即使它真的应该是一个微不足道的用例......

这是我正在测试的课程:

我目前正在测试这个类,感谢以下 jUnit 测试用例:

第一个测试运行成功,但第二个测试失败。使用 eclipse 调试器检查时,我可以看到:

  • 保存方法后返回一个 SimplePersonImpl qqun 具有正确的 firtName、lastName 和 id 值。但是 nodeId 为空,我不明白为什么。但是由于这种行为在 spring-data hello-worlds 示例中是相同的,我想我的问题不是来自那里。
  • 在 findOne 方法中,即使我的 qqun 对象中的 nodeId 为空,qqun.getNodeId() 也会返回 1。我不明白这个值是从哪里来的,但让我们继续
  • findOne 方法返回一个检索到的Qqun。所有检索到的Qqun 属性均为空,这似乎是我在 firstName 上的第一个 assertEquals 失败的原因。

在这里,我真的不明白我在哪里做错了(我想我做错了),但很明显 spring-data neo4j 持久性背后有很多我不明白的事情。我很乐意在这些点上得到一些答案(为什么我在保存调用后看到 nodeId=null ?为什么我检索一个所有属性都为 null 的非 null 对象?...)。

可能出现一些错误的最后一点是我的测试上下文配置,但我还是看不出问题出在哪里:

谢谢

0 投票
1 回答
253 浏览

neo4j - 使用 Spring 数据从 neo4j 获取动态值

我有一个 Neo4j 数据库,其中存储了一些带有索引“航点”的点,我想在通过一些点后动态获取一些点。为此,我创建了占位符 {name1},

但是在使用动态参数调用 getWayPointByName 时给了我

例外

0 投票
1 回答
717 浏览

neo4j - 如何使用节点的所有属性对节点进行分组?

我有一个要求,我必须获取按节点的所有属性分组的节点。它喜欢这样:我在 neo4j db 中有 2 个节点,它们具有属性“名称”和“地址”,我可以像这样编写密码 sql:start node=node(0) match node-->record return count( ),record .姓名,记录.地址。这很容易。但现在的问题是我有很多属性可能是 50 年代并且属性名称不固定,我这样写密码:start node=node(0) match node-->record return count( ), record, 但它无法得到我想要的结果。有人可以帮忙吗?谢谢。

0 投票
2 回答
1741 浏览

entity - 使用 Spring Data Neo4j 进行审计

我目前正在开发一个使用 Spring Data Neo4j 的项目。每当创建 NodeEntity 时,我都想创建一个引用的 Audit NodeEntity,其中包含创建日期和用户。

我想出的一个解决方案是编写一个 AOP Aspect,它与我的服务层的 create 方法挂钩。这适用于没有级联的实体,但级联的实体呢?这没有在我的服务层中显式传递,因此我的 AOP 类不会拦截它们。JPA 中是否有类似实体侦听器的概念,或者我如何才能融入这种机制?

0 投票
3 回答
621 浏览

java - 让 spring-data-neo4j 使用 getter 和 setter

嘿,Stackoverflower 同胞,

我最近尝试将 Spring 的 Spring.Data.Neo4j 连接器与 Neo4J 数据库结合使用。正确配置后,我遇到了以下问题。存储基于 JavaFX 的实体时,JavaFX 属性设置为 null。这很可能是这种情况,因为 spring.data.neo4j 似乎没有使用 getter 和 setter,而是使用反射。由于它不知道如何保留 JavaFX 属性,因此它会保留空值并在从数据库中检索时覆盖它们。

这是我的实体

是否可以让 Spring.data.neo4j 使用 getter 和 setter 进行访问,以便我可以保留我的 JavaFX bean?还是我做错了什么?

谢谢你的帮助,卡尔

0 投票
1 回答
428 浏览

spring - Lucene Cypher 查询策略

首先,我们使用的技术是 Neo4j、Spring 和 Spring Data Neo4j(都是最新的稳定版本)。

我们要求用户应该能够单独搜索我们所有的实体,并为所有实体提供所有全局搜索。我希望收集有关如何实施全局搜索的建议。下面是一些(简化的!)代码,显示了我如何查询我的实体。每个实体都使用自己的 Lucene 索引。

实体结构:

存储库类:

我如何访问存储库类(再次,非常简化):

因此,当您搜索单个实体类型时,这一切都很好。有人可以建议最好的方法是实现搜索每种实体类型的全局搜索吗?

我一直在思考的想法:

  • 使用单个 Lucene 索引,而不是每个实体的索引。在 @Indexed 中提供 fieldName,如“a.name”或“b.name”。然后在单个查询中使用每个字段名称,例如“globalIndex:(a.name: foo OR b.name: foo )。(实际上不确定这是否可能)

  • 为每种实体类型启动单独的搜索调用并组合结果。但是,很难根据索引分数来实现分页和排序。

我不担心性能,因为我们将使用相对较小的数据集。

最后一个问题:从 Cypher Lucene 查询返回的结果是否总是按其索引分数排序?如果没有,我应该如何在 SDN 中执行此操作?

0 投票
1 回答
369 浏览

spring - Spring Data Neo4j 存储库缺少 PagingAndSortingRepository

我已经实现了一个小用例来评估 Spring Data Neo4j。我有一个PublicRepository扩展的接口GraphRepository

界面如下所示:

这给了我 Error "The hierarchy of the type PublicRepository is inconsistent"

出现这种类型的错误是因为当前类扩展/实现的类/接口之一不存在,而当前类又扩展/实现了另一个类/接口。

查看核心库的包后org.springframework.data.repository,我发现库中没有PagingAndSortingRepository扩展接口CRUDRepository我在Neo4j 数据的 Github 存储库中搜索了相同的内容。但是那里也没有这个接口。

我在谷歌上搜索了相同但没有找到解决这个问题的方法,甚至没有进入 Neo4j Data 的问题队列。因此提交了一份,请参阅

  • 有没有人遇到过这个问题?
  • 有没有其他方法可以将 Neo4j 数据库与 spring 应用程序集成?
  • 哪里可以找到这个接口的spring-data-neo4j jar文件?
  • 如果没有,我在哪里可以找到可以与当前编译的 jar 集成的接口定义文件?相同的环境设置是什么?
0 投票
0 回答
1077 浏览

spring - Spring Data Neo4j 示例程序错误

我正在创建一个小应用程序来了解 Neo4j 和 Spring Data Neo4j。但我总是得到 NullPointerException 。因此,我使用了 Spring Data Neo4j 最简单的示例之一,并使用 JUnit 中的 main() 更新了测试文件。我的测试文件如下:

我的 Spring 上下文配置如下:

每当我运行测试代码时,都会收到以下错误:

我的配置中有什么遗漏吗?或者这里有什么额外需要的吗?据我了解,Neo4j 将在“target/neo4j-db”中创建图形数据库。另外,由于我的机器是 Ubuntu,我已经在我的机器上安装了 Neo4j 的 debian 包。所以我也尝试通过使用 REST API 来使用它。因此,为此我对我的 spring 上下文文件进行了以下配置:

但我仍然得到同样的例外。

仅供参考:我在 Eclipse 的构建路径中包含了 Spring、Spring Data Neo4j 和 Neo4j 库。

编辑:

好吧,由于对此没有回应,我尝试了与 JUnit 测试用例相同的示例,如此处示例中提供

在我的 JUnit 测试用例中,每种方法都有以下错误:

这表示未找到或丢失名为:org/neo4j/cypherdsl/grammar/Execute 的类。

这确实意味着我缺少其中一个库,但 Neo4j 库显示了名为neo4j-cypher-1.8.jar. 但在这我还没有找到cypherdsl

编辑2:

好吧,最后它与 JUnit 一起工作,但不适用于public static void main() [psvm]. 我错过了一个cypherdsl可以从这里下载的库。但是为什么我去的时候它不起作用psvm

0 投票
1 回答
983 浏览

neo4j - spring data neo4j 使用现有数据库

我正在使用 Spring Data Neo4j,在 Spring 中创建了一个应用程序。我可以在 JUnit 测试用例的帮助下运行我的应用程序。但是每次我运行我的测试用例时,它都会在使用<neo4j:config storeDirectory="target/neo4j-db"/>. 这会在 Eclipse 中我的工作区所在的同一位置创建 db。

我已经在我的 ubuntu 中安装了 Neo4j debian 包,默认情况下数据库位于/var/lib/neo4j/data/graph.db. 我希望我的应用程序使用这个数据库,而不是在target/neo4j-db. 我尝试替换target/neo4j-db/var/lib/neo4j/data/graph.db并已授予对数据库的读写权限。但它不起作用。

这个配置有什么问题?我错过了什么吗?