Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过java API从orientdb调用JS函数_Javascript_Java_Function_Api_Orientdb - Fatal编程技术网

Javascript 通过java API从orientdb调用JS函数

Javascript 通过java API从orientdb调用JS函数,javascript,java,function,api,orientdb,Javascript,Java,Function,Api,Orientdb,我试图通过OrientDB Java API从Java调用OrientDB中存储的自定义JS函数 我可以在studio中使用该功能,它可以按预期工作 这是用于连接数据库并获取函数的代码: OrientGraphFactory factory = new OrientGraphFactory(SERVER_URL, "user", "pass"); OrientGraph txGraph = factory.getTx(); OFunction functionObject = txGraph.g

我试图通过OrientDB Java API从Java调用OrientDB中存储的自定义JS函数

我可以在studio中使用该功能,它可以按预期工作

这是用于连接数据库并获取函数的代码:

OrientGraphFactory factory = new OrientGraphFactory(SERVER_URL, "user", "pass");
OrientGraph txGraph = factory.getTx();
OFunction functionObject = txGraph.getRawGraph().getMetadata()
.getFunctionLibrary().getFunction("functionName");
问题是返回的functionObject为null,检查
getFunctionLibrary()
结果,我可以看到函数列表为空

知道我做错了什么吗

使用官方示例,将给出相同的空结果

乐:对于任何在这方面遇到障碍的人,完整的工作代码是:

OrientGraphFactory factory = new OrientGraphFactory(SERVER_URL, "user", "pass");
OrientGraph txGraph = factory.getTx();
Double response = (Double) txGraph.command(new OCommandFunction("functionName")).execute(functionParameter);

其中,
response
是函数给出的结果,
functionParameter
是我传递给函数的参数。

这只适用于java函数(文档中的示例是正确的,因为它检索java函数)。 为了执行js/sql/任何函数,请使用OCommandFunction。大概是这样的:

txGraph.command(new OCommandFunction("functionName")).execute()
可能它也可以直接工作(如果您不需要将结果转换为图形对象)

但在这种情况下,db实例必须附加到线程(在函数调用之前创建的db连接对象)

new OCommandFunction("functionName").execute()