gpt4 book ai didi

arangodb - 使用批处理模式在 ArangoDB 中创建顶点

转载 作者:行者123 更新时间:2023-12-01 09:52:22 26 4
gpt4 key购买 nike

尝试在不激活批处理模式的情况下使用 ArangoDB Java API 创建顶点和边,一切正常。但是,当启用批处理模式时,它会在创建顶点时抛出一个未知错误。以下是 Java 代码和异常详细信息。知道为什么会这样吗?提前致谢!

代码

public static void main(String[] args) throws ArangoException {

createNodesInBatch();

}
static public void createNodesInBatch() throws ArangoException {
ArangoConfigure configure = new ArangoConfigure();
configure.init();
ArangoDriver arangoDriver = new ArangoDriver(configure);

arangoDriver.createDatabase("small_db");
System.out.println("Database created.");
arangoDriver.setDefaultDatabase("small_db");

arangoDriver.createCollection("testEdgeCollection",
new CollectionOptions().setType(CollectionType.EDGE));

arangoDriver.createCollection("testVertexCollection",
new CollectionOptions().setType(CollectionType.DOCUMENT));

EdgeDefinitionEntity ed = new EdgeDefinitionEntity();
// add edge collection name
ed.setCollection("testEdgeCollection");

// add vertex collection names
ed.getFrom().add("testVertexCollection");

// add vertex collection names
ed.getTo().add("testVertexCollection");

List<EdgeDefinitionEntity> edgeDefinitions = new ArrayList<EdgeDefinitionEntity>();
edgeDefinitions.add(ed);


arangoDriver.createGraph("testGraph", edgeDefinitions, null, false);
System.out.println("Graph created.");

arangoDriver.startBatchMode();;
System.out.println("Batch mode started.");

for (int nodeIdx = 0; nodeIdx < 10; nodeIdx++)
{
String nodeName = "node_" + nodeIdx;
SimpleNode node = new SimpleNode(nodeName);
VertexEntity<SimpleNode> vertex = arangoDriver.graphCreateVertex("testGraph", "vertextCollection", node, false);
}

System.out.println("Batch execution started to create nodes");
arangoDriver.executeBatch();

}

异常信息

数据库已创建。

图表已创建。

批处理模式已启动。

Exception in thread "main" java.lang.reflect.UndeclaredThrowableException
at com.sun.proxy.$Proxy14.createVertex(Unknown Source)
at com.arangodb.ArangoDriver.graphCreateVertex(ArangoDriver.java:4570)
at WhichDB.ArangoDBTest.App.createNodesInBatch(App.java:311)
at WhichDB.ArangoDBTest.App.main(App.java:327)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.arangodb.http.InvocationHandlerImpl.invoke(InvocationHandlerImpl.java:38)
... 4 more
Caused by: com.arangodb.ArangoException: unknown error
at com.arangodb.impl.InternalGraphDriverImpl.createVertex(InternalGraphDriverImpl.java:329)
at com.arangodb.impl.InternalGraphDriverImpl.createVertex(InternalGraphDriverImpl.java:294)
... 9 more

最佳答案

ArangoDB Java 驱动程序出错。 2.7.3版本修复驱动问题。

我将您的示例代码添加到 my tests并使用 ArangoDB 2.8.6 对其进行了测试。

github 上下载 ArangoDB java 驱动程序并用 maven 编译它:

mvn clean install -DskipTests=true -Dgpg.skip=true -Dmaven.javadoc.skip=true -B

Maven 在 target 目录中创建包含所有依赖项的独立驱动程序 JAR 文件 (arangodb-java-driver-X.X.X-SNAPSHOT-standalone.jar)。

获取示例代码:

wget https://gist.githubusercontent.com/anonymous/a430ba1129ccfb0dc1ac31af4dd02d98/raw/8db1033cacd9656f92b8c5b34f5fb1431df8730c/NodesInBatchExample.java

编译示例代码:

javac -classpath arangodb-java-driver-X.X.X-SNAPSHOT-standalone.jar NodesInBatchExample.java

在默认端口上启动无认证的ArangoDB并运行示例代码:

java -classpath arangodb-java-driver-X.X.X-SNAPSHOT-standalone.jar:. NodesInBatchExample

关于arangodb - 使用批处理模式在 ArangoDB 中创建顶点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35416132/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com