为什么在new4j DB中找不到我从Java代码保存的图形?

时间:2019-06-08 00:17:53

标签: neo4j

我使用Java代码创建了一个图形,并将其保存到我的neo4j db中。但是,当我通过浏览器查询数据库时,发现没有图形。我执行Java代码时也没有看到任何错误。我发现的一个问题是代码没有退出。这只是永远的等待,我不得不用ctrl + c杀死它。

我从Excel工作表中读取记录,并将数据转换为树状数据结构,然后将其保存到数据库中。 运行代码后,我重新启动了数据库,以查看它是否从文件中重新加载了图形。但是图仍然是空的。

节点类:

    package com.ptg.courseExtractor.neo4j.vo;
    import org.neo4j.ogm.annotation.NodeEntity;
    import org.neo4j.ogm.annotation.Relationship;
    @NodeEntity
    public class CareerField extends Entity {

    String careerField;

    @Relationship(type = "CONTAINS")
    List<Strand> strands;

    public CareerField() {
    }

    public CareerField(String careerField, List<Strand> strands) {
        this.careerField = careerField;
        this.strands = strands;
    }

    public List<Strand> getStrands() {
        return strands;
    }
    }

    package com.ptg.courseExtractor.neo4j.vo;
    import org.neo4j.ogm.annotation.NodeEntity;
    import org.neo4j.ogm.annotation.Relationship;

    @NodeEntity
    public class Strand extends Entity{
    String strandId;
    String strandTitle;

    public Strand() {
    }

    public Strand(String strandId, String strandTitle) {
        this.strandId = strandId;
        this.strandTitle = strandTitle;
    }
    }

编写图形的代码:

    val session = SessionFactory.sessionFactory.openSession()
    session.purgeDatabase()

    files.foreach(file => {
      val mappings = parseFile(file)

      val courseMaps = mappings.asScala.groupBy(x => x._1)
        .toList.map(x => new CareerField(x._1, x._2.map(y => new Strand(y._2.toString, y._3, y._4.asJava)).asJava))

      for (course <- courseMaps) {
        println(s"Saving Career Field with ${course.getStrands.size()} strands")
        session.save(course)
      }

会话工厂:

    object SessionFactory {
    val configuration = new     Configuration.Builder().uri("bolt://localhost:7687").credentials("neo4j", "*********").build();
    val sessionFactory = new SessionFactory(configuration, "com.ptg.courseExtractor.neo4j.vo")
    }

控制台输出:(2个图形,每个图形中有1个父节点,分别有7个和6个孩子。) 用7条线保存职业领域 用6条线保存职业领域

我使用密码浏览器查询了该图。我得到空输出。数据库为空。 我从IntelliJ执行代码。 main的最后一行结束后,执行将无限期地等待。因此,我不得不终止执行并检查数据库。 我希望整个图都被加载。

0 个答案:

没有答案