簡體   English   中英

通過java API從orientdb調用JS函數

[英]calling JS function from orientdb through java API

我試圖通過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()結果,可以看到函數列表為空。

知道我在做什么錯嗎?

使用官方文檔示例,結果相同。

LE:對於任何對此絆腳石的人,完整的工作代碼是:

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函數(並且doc中的示例正確,因為它檢索Java函數)。 為了執行js / sql /任何函數,請使用OCommandFunction。 像這樣:

txGraph.command(new OCommandFunction("functionName")).execute()

可能它也可以直接工作(如果您不需要將結果轉換為圖形對象)

new OCommandFunction("functionName").execute()

但是在這種情況下,數據庫實例必須附加到線程(在函數調用之前創建的數據庫連接對象)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM