2014-09-15 5 views
0

Neo4j 2.1.2 커뮤니티 에디션을 사용하고 있습니다. 내가 만든 데이터베이스에 neo4j를 가리키고 webadmin에 로그인하면 관계 유형과 레이블이 내가 만든 코드에 표시되지만 노드와 관계를 가져 오려고하면 어떤 것도 나열되지 않습니다.Neo4j 웹 관리자는 레이블, 왼쪽의 관계를 보여 주지만 노드는 나열하지 않습니다.

첨부 된 스크린 샷을 참조하십시오. enter image description here

다음 코드를 사용하여 데이터베이스를 생성합니다.

import org.neo4j.graphdb.GraphDatabaseService; 
import org.neo4j.graphdb.Label; 
import org.neo4j.graphdb.Node; 
import org.neo4j.graphdb.Relationship; 
import org.neo4j.graphdb.RelationshipType; 
import org.neo4j.graphdb.Transaction; 
import org.neo4j.graphdb.factory.GraphDatabaseFactory; 

public class HelloWorld { 

private GraphDatabaseService m_databaseService; 
private Node m_firstNode; 
private Node m_secondNode; 
private Relationship m_relationship; 

public static void main(String[] args) { 
    new HelloWorld().startApplication(); 
} 

private void startApplication() { 
    createDatabase(); 
    createNodesAndrelationship(); 
    shutDownDB(); 
} 

private void createDatabase() { 
    m_databaseService = new GraphDatabaseFactory().newEmbeddedDatabase("E:\\ERM\\RoutingData\\neo4j"); 
} 

private void createNodesAndrelationship() { 
    Transaction tx = m_databaseService.beginTx(); 

    try { 

     m_firstNode = m_databaseService.createNode(); 
     m_firstNode.addLabel(new Label() { 

      @Override 
      public String name() { 
       return "Demo"; 
      } 
     }); 
     m_firstNode.setProperty("message", "Hello"); 
     System.out.println("Created First Node."); 

     m_secondNode = m_databaseService.createNode(); 
     m_secondNode.setProperty("message", "world !"); 
     m_secondNode.addLabel(new Label() { 

      @Override 
      public String name() { 
       return "Demo"; 
      } 
     }); 
     System.out.println("Created Second Node."); 

     m_relationship = m_firstNode.createRelationshipTo(m_secondNode, RelType.KNOWS); 
     m_relationship.setProperty("message", "bravo neo4j !"); 
     System.out.println("Created relationship."); 

     tx.success(); 
    } finally { 

     tx.failure(); 
    } 

    System.out.println(m_firstNode.getProperty("message").toString() + " " + m_relationship.getProperty("message") + " " + m_secondNode.getProperty("message")); 
} 

private void shutDownDB() { 
    m_databaseService.shutdown(); 
    System.out.println("Database shutdown completed."); 
} 

private static enum RelType implements RelationshipType { 
    KNOWS 
} 

}

내가 잘못 뭐하는 거지 제안하십시오.

답변

1

트랜잭션을 커미트하지 않고 롤백 중입니다.

tx.failure()tx.close()으로 바꿉니다.

System.out.println(m_firstNode.getProperty("message").toString() + " " + m_relationship.getProperty("message") + " " + m_secondNode.getProperty("message")); 
:

또한,이 라인은 org.neo4j.graphdb.NotInTransactionException을 피하기 위해 tx.close() 호출 전에 이동해야