我跟着https://github.com/graphaware/neo4j-uuid链接为从Spring boot应用程序创建的每个neo4j节点生成UUID。以下是我根据链接遵循的步骤列表:
>
添加以下配置到\conf\neo4j.conf文件
com.graphaware.runtime.enabledcom.graphaware.module.UIDM.1=com.graphaware.module.uuid.UuidBootstrappercom.graphaware.module.UUID. uuidGeneratorClass=com.graphaware.module.uuid.generator.SequenceIdGenerator
在spring boot应用程序中创建模型类
@NodeEntity
public class Skill {
@GraphId
private Long graphId;
@Property(name = "uuid")
private Long uuid;
@Property(name = "skillName")
private String skillName;
//...getters and setters
}
创建Spring Neo4j数据存储库接口
public interface SkillRepository extends GraphRepository<Skill> {
}
启动Neo4j DB并加载Spring上下文,并测试配置:
public Skill createkill() {
Skill skill = new Skill();
skill.setSkillName("Java");
skill = skillRepository.save(skill);
return skill;
}
问题:正在Neo4j DB中创建节点,并自动填充graphId属性,但未填充uuid属性。返回的Skill对象为uuid属性保留空值。
我检查了Graphaware框架,UUID没有在Neo4j GrapheneDB上启动,Graphaware UUID没有生成链接,但找不到任何解决问题的方法。
请帮助了解我做错了什么或者我是否错过了什么。或者建议任何替代的uuid
生成解决方案。
使用的库和工具的版本详细信息:Java1.8。0_131
Neo4J 3.3.2 Enterprise
graphaware-uuid-3.3.3.52.16.jar
Spring boot 1.5.10
UUID属性不会在节点创建中返回,而只会在下一个事务中返回。
您可以在Neo4j浏览器中使用Java应用程序创建一个节点并通过该节点进行查询(或在Java应用程序中启动另一个事务并进行查询)进行检查。UUID属性应存在。
正如布鲁诺·佩雷斯(Bruno Peres)所提到的,所有配置和代码都是正确的,只是我没有复制GraphAware服务器、运行时JAR及其在插件文件夹中的依赖JAR。下面是我放置在plugins文件夹中的jar列表,用于使用GraphAware成功启动Neo4j DB并生成UUID。
algorithms-3.0.4.43.5.jar
changefeed-2.3.2.37.7.jar
common-3.3.3.52.jar
graphaware-uuid-3.3.3.52.16.jar
kryo-2.24.0.jar
minlog-1.2.jar
nlp-3.3.2.52.6.jar
objenesis-2.6.jar
runtime-3.3.3.52.jar
runtime-api-3.3.3.52.jar
server-3.3.3.52.jar
server-common-2.2.6.35.jar
sping-bean-4.3.14。RELEASE. jar
sping-content-4.3.14。RELEASE. jar
sping-content-support-4.3.13。RELEASE. jar
sping-core-4.3.14。RELEASE. jar
timetree-3.3.3.52.27.jar
tx-api-3.3.3.52.jar
tx-executor-3.3.3.52.jar
uuid-3.2.jar
writer-3.3.3.52.jar
writer-api-3.3.3.52.jar
GraphAware内部使用spring框架。这就是为什么我在文件夹中也包含了spring jars。
我希望它创建每个节点(而不是在已经存在具有相同ID的节点时创建新节点),并创建每个关系(在CSV中指定具有多个关系的节点中有多个关系from/to节点)。 实际发生的情况:它似乎创建了所有唯一的节点。它还创建了节点之间的关系,但它只为每个节点设置一个关系,而不考虑与多个其他节点进行通信的一些节点。 我很困惑,因为我的理解是,如果在数据库中还没有出现关系,它将创建关系,所以我认为它将创建CSV中指定
我已经在Linux系统上安装了neo4j-2.1.3并运行了服务器。我在我的应用程序中创建了模型“publisher”。然后在manage.py shell中,每当我使用 从BooksGraph.models导入Publisher p=Publisher.objects.create(name='Sunny',地址='b-1/196') 会弹出一个很长的错误: Traceback(最近的调用最后)
我需要创建一个新的A类节点,它与User节点有关系: 现在,假设我们有新节点A的以下数据: 我试图创建节点A,使新节点A与具有“id”:4和“nodeId”:“0002-0002”(唯一节点标识符)的用户的(现有)节点之间具有关系,但用户节点将字段“name”和“firstName”更新为。 我正在使用GraphRespository代理创建它: 有没有办法不进行此更新,只与用户节点建立关系?
我使用的是Spring数据Neo4j 3.3。1.2与Neo4j服务器一起发布。3. 我的问题是有一些节点是我的实体的副本,但它只有索引属性。 我的班级看起来像这样 当一个新节点被创建时,我首先检查是否有一个现有的节点,如果它存在就更新它,否则创建一个新的节点。 存储库接口。 在Neo4j中,实体被创建到具有所有属性的节点。但是有些节点也有一个只包含productId的重复节点。问题是这并没有发生
有数据集在. csv文件格式 这个文件有超过4百万行。 我在远程超级计算机上运行数据库,我使用ssh隧道连接。我创建2个索引: 然后执行查询: 过了一段时间,我不知道一个小时,有关查询执行的信息消失或出现未知错误。但是当我localhost:7474/webadmin统计数据时,节点数量增长非常缓慢——大约10秒内增加5-8个节点。 当我执行查询时:(我可以,因为没有显示正在运行的查询) 大约有7
我有一个csv格式的数据集。其中一个字段是“elem_type”。基于此类型,我需要创建不同的类型节点,并在使用csv load加载数据时,根据“elem_type”为csv的“列”赋予不同的名称,有什么方法可以做到这一点吗? 我的csv没有标头,数据如下所示: 基于第一个colmuns,即我的“elem_type”,我要加载数据并定义3种类型的节点(Person,Car,Boat)