1

我按照https://github.com/graphaware/neo4j-uuid链接为从 Spring 启动应用程序创建的每个 neo4j 节点生成 UUID。这是我按照链接执行的步骤列表:

  1. 将文件添加到Neo4jDB 的graphaware-uuid-3.3.3.52.16.jar文件夹中。 就我而言\plugins
    C:\Users\Naveen\AppData\Roaming\Neo4j Desktop\Application\neo4jDatabases\database-***\installation-3.3.2\plugins

  2. 在 \conf\neo4j.conf 文件中添加了以下配置

    com.graphaware.runtime.enabled=true com.graphaware.module.UIDM.1=com.graphaware.module.uuid.UuidBootstrapper com.graphaware.module.UUID.uuidGeneratorClass=com.graphaware.module.uuid.generator.SequenceIdGenerator

  3. 在 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  
    }
    
  4. 创建 Spring Neo4j 数据存储库接口

    public interface SkillRepository extends GraphRepository<Skill> {  
    }
    
  5. 启动 Neo4j DB 并加载 Spring 上下文并测试配置:

    public Skill createkill() {
        Skill skill = new Skill();
        skill.setSkillName("Java");
        skill = skillRepository.save(skill);
        return skill;
    }
    

问题:在 Neo4j DB 中创建节点并graphId自动uuid填充属性,但未填充属性。返回的技能对象为uuid属性持有空值。

我检查了Graphaware Framework 和 UUID not started on Neo4j GrapheneDBGraphAware UUID not generate links 但找不到任何解决我的问题的方法。

请帮助了解我做错了什么,或者我是否遗漏了什么。或建议任何替代uuid代解决方案。

使用的库和工具的版本详细信息:
Java 1.8.0_131
Neo4J 3.3.2 Enterprise
graphaware-uuid-3.3.3.52.16.jar
Spring boot 1.5.10

4

2 回答 2

1

UUID 属性不会在节点创建中返回,而只会在下一个事务中返回。

您可以使用 Java 应用程序创建节点并在 Neo4j 浏览器中通过该节点进行查询(或在 Java 应用程序中启动另一个事务并查询)来检查它。UUID 属性应该存在。

于 2018-03-15T22:57:17.097 回答
1

如前所述@Bruno Peres,所有配置和代码都是正确的,除了我错过了复制文件夹中的GraphAware Server,Runtime jars及其依赖的 jar 。\plugins这是我放置在\plugins文件夹中以使用 GraphAware 成功启动 Neo4j DB 并生成 UUID 的 jar 列表。

算法-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
spring-beans-4.3。 14.RELEASE.jar
spring-context-4.3.14.RELEASE.jar
spring-context-support-4.3.13.RELEASE.jar
spring-core-4.3.14.RELEASE.jar
spring-expression-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 框架。这就是我在文件夹中包含弹簧罐的原因。

于 2018-03-17T07:38:44.380 回答