[英]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.