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

spring - 具有相同类型的多个关系类

使用 spring-data-neo4j,我想创建两个类,@RelationshipEntity(type="OWNS")用于将一个Person类链接到 aPetCar.

这可以正确保存到图形数据库中,没有问题,因为我可以查询实际NodeRelationship查看它们的类型等。

但是当我尝试使用时,@RelatedTo(type="OWNS", elementClass=Pet.class)我要么得到一个类转换异常,要么在使用延迟初始化时得到不正确的结果。

当我尝试打印我的人时得到的结果(我的toString()已被省略,但它只是toString()为每个字段调用)是这样的:

有谁知道这是否可以完成,应该完成,只是一个错误或缺少的功能?

0 投票
2 回答
623 浏览

neo4j - 为 Neo4j 配置 TypeRepresentationStrategy

我们目前正在使用 neo4j 开发一个 Java 项目。

我们使用Spring Data Neo4j并从Good Relationships书中获取大部分信息。

该文档指出,图中的标准实体类型表示是IndexingNodeTypeRepresentationStrategy

对于我们的项目,我们更喜欢带有子引用节点的那个。

在使用存储库时,我们如何配置 neo4j 以使用此策略。我们从 HelloWorld 示例开始,因此我们目前有一个存储库接口,如下所示:

此外,我们还有我们的节点实体(我省略了大部分不相关的代码):

谁能提供一个如何设置TypeRepresentationStrategy的小例子?

这可以在 Spring 配置中完成吗?

配置将是:

编辑:

在另一个会话之后,我终于能够让它工作了!我开始基于 Michael Hungers 的回答,但无法创建 Bean。我发现他的例子可能来自:gitHub。但是,这仍然对我不起作用。我开始深入研究 TypeRepresentationStrategyFactory 类的源代码。我发现, Strategy 是一个私有枚举。这是我试图提供的第二个构造函数 arg。在我的项目中,它从未将其检测为 Strategy 类型。

首先我有点怀疑,因为战略是私人的。我的意思是,我什至无法在代码中实例化 TypeRepresentationStrategyFactory,因为它找不到类型 Strategy。我很快发现,据说 Spring 可以做这样的事情:Beans with private constructor

最后我不得不调整 Michaels 解决方案,因为它没有识别构造函数参数。不管我做了什么。也许这是我的设置,我真的不知道。但最后我想出了从私有枚举创建一个 bean并将其作为对构造函数的引用的解决方案:

0 投票
1 回答
2167 浏览

neo4j - Spring Data Neo4j - @RelationshipType 问题

@RelationshipType当关系类型用字段注释时,我在检索关系时遇到困难。

Neoclipse 中的关系看起来是正确的,但我在我的应用程序中没有检索到任何结果。

不起作用的代码是(简化的):

和:

有效的代码是:

但是,这不适合我的用例(我在任意实例Relationship组合之间有一堆不同的类型。Entity

完整的测试代码如下。Agency并且Item都是 的子类Entity

最后一行是测试失败的地方。有什么线索吗?

PS。我是 Neo4j 的业余爱好者,碰巧发现了@RelationshipType,所以我很可能做错了可笑的事情。但愿如此!

0 投票
3 回答
1433 浏览

spring - Spring数据neo4j和使用IN关键字查询

我有许多与关系相关的不同节点。在这些关系上,我使用了一些 Enum 类型的属性,并且我尝试使用 Cyper 语言查询这些关系,并且只返回那些具有 Enum 属性的数组。此外,我试图查询的关系是另一个具有我要查询的属性的关系的子类。这是一个例子:

想象一下,可见性是一个可以是私有、网络或公共的枚举。然后在存储库中我尝试了以下查询,但它总是返回所有内容或引发错误:

我真正想使用的是“IN”运算符,但这会引发错误,就像它不知道 IN 是什么一样。

我的可见性没有被索引吗?还是我不应该这样做?我没有尝试通过字符串更改 Visibility 属性,我认为这应该可以工作,因为我有其他可以成功查询的字符串属性。使用“IN”运算符是一个奖励!

编辑 1:我正在使用 spring-data-neo4j 2.0.1.RELEASE。我正在尝试在单元测试中使用 执行此操作org.neo4j.test.ImpermanentGraphDatabase,但我刚刚意识到查询@Query("start s=node({0}) match s-[r:TYPE]->e where r.visibility='Private' return r")在运行服务器时使用默认配置时有效,但在单元测试中仍然无效。此外,即使在运行服务器时,“IN”子句仍然会引发错误。这与我使用的版本有关吗?我记得尝试使用更新的版本,但依赖项失败了,也许我应该再试一次。

编辑2:所以我将spring-data-neo4j的版本更新为2.1.0.BUILD-SNAPSHOT,也将neo4j版本升级为1.7。现在,“IN”关键字没有错误,但我不知道应该使用什么语法来传递要搜索的值。所以有

Public如果我传递一个简单的字符串Public, PrivatePublic如 我也尝试更改String visibilitya的参数String[] visibility,但这根本不起作用。

0 投票
1 回答
300 浏览

spring - long 类型的字段没有被 spring-data-neo4j 索引

正如标题所说。我创建了一个带@NodeEntity注释的 POJO,在其中我有一个字段,我想用作标识符,long我想索引和搜索它。

当我使用它保存我的 POJO时,neo4jTemplate它可以保存,并且我可以看到 neo4j 为我的类创建索引名称,但是当我尝试查询索引时,我什么也没得到。

我已经尝试过使用int和的领域long,但似乎都不起作用。查询时,我都尝试了1, 1l"1"但都没有返回我的节点。

我可以确认可以使用值为 anint或 a的键/值创建索引,long并且它们可以正常工作。

有人遇到过这种情况么?

0 投票
1 回答
2357 浏览

date - 将日期与 Spring Data neo4j 进行比较

在查询java.util.Date属性上的关系时,我应该使用什么语法?我尝试只使用类似的查询(这只是一个显示我正在尝试做的事情的示例,所以请不要注意那里的变量名):

但它会引发以下错误:

我也尝试通过传递一个日期,但它只是抛出相同的错误,但试图比较一个长和一个日期。

我正在使用 spring-data-neo4j 版本 2.0.1.RELEASE

0 投票
3 回答
3574 浏览

spring - org.neo4j.graphdb.NotInTransactionException

一个星期以来我一直在努力解决这个问题,但似乎仍然找不到解决方案。我正在使用 spring-data-neo4j maven artifact 和以下导致此问题的代码行:

执行该方法时,会出现以下错误

accessorSet.add(classDescriptor);

堆栈跟踪:

我的实体如下:(User.java)

(项目.java)

请帮忙 !附件是依赖树。

依赖树

0 投票
2 回答
742 浏览

spring - Spring Data NEO4J:关系具有空值

我有一个 spring 3.1 (Milestone) 和 Spring Data Neo4J 2.1 RC 项目正在运行。一切正常启动,neo4j 数据库正在根据需要填充,在 neoclipse 中也可见。

现在我通过 id 获取一个实体(让我们称之为 Container.java)并拥有关系“事件”。

Container.java 中的关系建模如下:

当我访问 container.getEvents() 并对其进行迭代时,我可以看到单个事件有一个 id,但所有其他属性都是 null :( 使用 neoclipse 查看时,所有属性都按应有的方式保存。

是否存在某种“急切”或“懒惰”的加载?我不使用@RelationshipType。

0 投票
1 回答
1113 浏览

neo4j - 在 neo4j 中注册事务事件处理程序

我目前正在将 Spring Data 与 Neo4j 一起使用,并将其子类化SpringRestGraphDatabase以允许注册特定的事务事件处理程序。

我调用registerTransactionEventHandler方法来这样做。不幸的是,我总是遇到以下异常:

通过仔细查看 AbstractRemote 我发现它总是抛出异常:

RestGraphDatabase不提供 register 方法的实现,因此存在异常。我不确定使用什么替代品,尤其是在我扩展SpringRestGraphDatabase.

有没有更清洁的替代品?

(我使用的是 v2.1.0.M1)

0 投票
2 回答
1235 浏览

spring-security - Neo4j 弹簧安全

像 Neo4j 这样的图形数据库是否非常适合存储 spring-security 检查访问权限的“用户”和信息?