问题标签 [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.
spring - 具有相同类型的多个关系类
使用 spring-data-neo4j,我想创建两个类,@RelationshipEntity(type="OWNS")
用于将一个Person
类链接到 aPet
和Car
.
这可以正确保存到图形数据库中,没有问题,因为我可以查询实际Node
并Relationship
查看它们的类型等。
但是当我尝试使用时,@RelatedTo(type="OWNS", elementClass=Pet.class)
我要么得到一个类转换异常,要么在使用延迟初始化时得到不正确的结果。
当我尝试打印我的人时得到的结果(我的toString()
已被省略,但它只是toString()
为每个字段调用)是这样的:
有谁知道这是否可以完成,应该完成,只是一个错误或缺少的功能?
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并将其作为对构造函数的引用的解决方案:
neo4j - Spring Data Neo4j - @RelationshipType 问题
@RelationshipType
当关系类型用字段注释时,我在检索关系时遇到困难。
Neoclipse 中的关系看起来是正确的,但我在我的应用程序中没有检索到任何结果。
不起作用的代码是(简化的):
和:
有效的代码是:
但是,这不适合我的用例(我在任意实例Relationship
组合之间有一堆不同的类型。Entity
完整的测试代码如下。Agency
并且Item
都是 的子类Entity
。
最后一行是测试失败的地方。有什么线索吗?
米
PS。我是 Neo4j 的业余爱好者,碰巧发现了@RelationshipType
,所以我很可能做错了可笑的事情。但愿如此!
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, Private
(Public
如 我也尝试更改String visibility
a的参数String[] visibility
,但这根本不起作用。
spring - long 类型的字段没有被 spring-data-neo4j 索引
正如标题所说。我创建了一个带@NodeEntity
注释的 POJO,在其中我有一个字段,我想用作标识符,long
我想索引和搜索它。
当我使用它保存我的 POJO时,neo4jTemplate
它可以保存,并且我可以看到 neo4j 为我的类创建索引名称,但是当我尝试查询索引时,我什么也没得到。
我已经尝试过使用int
和的领域long
,但似乎都不起作用。查询时,我都尝试了1
, 1l
,"1"
但都没有返回我的节点。
我可以确认可以使用值为 anint
或 a的键/值创建索引,long
并且它们可以正常工作。
有人遇到过这种情况么?
date - 将日期与 Spring Data neo4j 进行比较
在查询java.util.Date
属性上的关系时,我应该使用什么语法?我尝试只使用类似的查询(这只是一个显示我正在尝试做的事情的示例,所以请不要注意那里的变量名):
但它会引发以下错误:
我也尝试通过传递一个日期,但它只是抛出相同的错误,但试图比较一个长和一个日期。
我正在使用 spring-data-neo4j 版本 2.0.1.RELEASE
spring - org.neo4j.graphdb.NotInTransactionException
一个星期以来我一直在努力解决这个问题,但似乎仍然找不到解决方案。我正在使用 spring-data-neo4j maven artifact 和以下导致此问题的代码行:
执行该方法时,会出现以下错误
accessorSet.add(classDescriptor);
堆栈跟踪:
我的实体如下:(User.java)
(项目.java)
请帮忙 !附件是依赖树。
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。
neo4j - 在 neo4j 中注册事务事件处理程序
我目前正在将 Spring Data 与 Neo4j 一起使用,并将其子类化SpringRestGraphDatabase
以允许注册特定的事务事件处理程序。
我调用registerTransactionEventHandler
方法来这样做。不幸的是,我总是遇到以下异常:
通过仔细查看 AbstractRemote 我发现它总是抛出异常:
RestGraphDatabase
不提供 register 方法的实现,因此存在异常。我不确定使用什么替代品,尤其是在我扩展SpringRestGraphDatabase
.
有没有更清洁的替代品?
(我使用的是 v2.1.0.M1)
spring-security - Neo4j 弹簧安全
像 Neo4j 这样的图形数据库是否非常适合存储 spring-security 检查访问权限的“用户”和信息?