Neo4j在一个过程中创建一个节点

时间:2016-05-24 10:50:35

标签: neo4j transactions procedures

想知道我的交易是否需要配置,以便它不是只读...

在过程中创建节点时出错。错误是 引起:org.neo4j.graphdb.security.AuthorizationViolationException:READ事务不允许写操作。

调用程序的测试是 -

@Test
public void testLoad() throws Exception {

    GraphDatabaseService db = new           TestGraphDatabaseFactory().newImpermanentDatabase();

    ((GraphDatabaseAPI) db).getDependencyResolver().resolveDependency(Procedures.class)
            .register(LiveServiceLoad.class);

    Result res = db.execute("CALL load.hello()");

}

导致错误的程序 -

 @Procedure 
public Stream<Output> loadTimeTable() {
 try ( Transaction tx = db.beginTx() )
        {
         Node liveServiceNode = db.createNode(Label.label("LiveService"));

1 个答案:

答案 0 :(得分:0)

您需要将@PerformsWrite注释添加到在图表上执行变异操作的任何过程。

请参阅https://github.com/neo4j-contrib/neo4j-apoc-procedures/blob/master/src/main/java/apoc/create/Create.java#L27作为示例。