使用Spring启动创建Neo4j节点时,GraphAware UUID生成无法正常工作

时间:2018-03-15 21:29:29

标签: neo4j uuid spring-data-neo4j graphaware

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

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

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

      

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

  3. 在Spring启动应用程序中创建Model类

    @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;
    }
    
  6. 问题:节点是在Neo4j DB中创建的,graphId属性自动填充,但未填充uuid属性。返回的Skill对象为uuid属性保留空值。

    我检查了Graphaware Framework and UUID not starting on Neo4j GrapheneDBGraphAware UUID not generating个链接,但无法找到解决问题的方法。

    请帮忙知道我做错了什么或者我错过了什么。 或建议任何替代的uuid代解决方案。

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

2 个答案:

答案 0 :(得分:1)

在节点创建中不返回UUID属性,但仅在下一个事务中返回。

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

答案 1 :(得分:1)

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

  

算法-3.0.4.43.5.jar
  changefeed-2.3.2.37.7.jar
  共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
  运行时3.3.3.52.jar
  运行时API-3.3.3.52.jar
  服务器3.3.3.52.jar
  服务器共2.2.6.35.jar
  弹簧豆,4.3.14.RELEASE.jar
  弹簧上下文4.3.14.RELEASE.jar
  弹簧上下文支持,4.3.13.RELEASE.jar
  弹簧芯4.3.14.RELEASE.jar
  弹簧表达-4.3.14.RELEASE.jar
  timetree-3.3.3.52.27.jar
  TX-API 3.3.3.52.jar
  TX-执行,3.3.3.52.jar
  UUID-3.2.jar
  作家3.3.3.52.jar
  writer-api-3.3.3.52.jar

GraphAware内部使用spring框架。这就是我在文件夹中包含弹簧罐的原因。