问题标签 [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.
neo4j - 来自继承的 @NodeEntity 的索引不返回预期结果
我有一个共同的实体类:
一个扩展 Entiy 类的 Employee 类:
我在测试中注意到:
不返回任何值,而
两者都按预期返回。
我尝试将“id”的名称更改为其他文字,并使用 1(数字)和“1”(字符串)进行搜索,但情况仍然相同。我怀疑它与数值有关。
所以我想知道我是否以错误的方式使用@Indexed?
使用:neo4j-version:1.8 spring-data-neo4j.version:2.1.0.RC4
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 对象?...)。
可能出现一些错误的最后一点是我的测试上下文配置,但我还是看不出问题出在哪里:
谢谢
neo4j - 使用 Spring 数据从 neo4j 获取动态值
我有一个 Neo4j 数据库,其中存储了一些带有索引“航点”的点,我想在通过一些点后动态获取一些点。为此,我创建了占位符 {name1},
但是在使用动态参数调用 getWayPointByName 时给了我
例外
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, 但它无法得到我想要的结果。有人可以帮忙吗?谢谢。
entity - 使用 Spring Data Neo4j 进行审计
我目前正在开发一个使用 Spring Data Neo4j 的项目。每当创建 NodeEntity 时,我都想创建一个引用的 Audit NodeEntity,其中包含创建日期和用户。
我想出的一个解决方案是编写一个 AOP Aspect,它与我的服务层的 create 方法挂钩。这适用于没有级联的实体,但级联的实体呢?这没有在我的服务层中显式传递,因此我的 AOP 类不会拦截它们。JPA 中是否有类似实体侦听器的概念,或者我如何才能融入这种机制?
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?还是我做错了什么?
谢谢你的帮助,卡尔
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 中执行此操作?
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 集成的接口定义文件?相同的环境设置是什么?
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
?
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
并已授予对数据库的读写权限。但它不起作用。
这个配置有什么问题?我错过了什么吗?