执行链接的OFunction

时间:2016-03-20 18:50:48

标签: orientdb

尝试使用OrientDB, 我正在尝试从函数执行链接到实例OFunction。

有一个名为“testFunction”的OFunction实例和@rid#6:2;

我的班级有一个属性:

create property MyClass.myFunction LINK OFunction

我的例子是:

insert into MyClass set myFunction = #6:2

现在我想创建一个HTTP REST可执行函数,它选择我的实例并执行其链接函数。

我明白了

db.query('select from MyClass limit 1')[0].field('myFunction');

正确地导致了

    "@type": "d",
    "@rid": "#6:2",
    "@version": 1,
    "@class": "OFunction",
    ...

如何通过此引用执行它?

我知道它可以通过以下名称执行:

db.getMetadata().getFunctionLibrary().getFunction("test1").execute();

但是按字符串搜索函数是没有意义的。

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用此代码

String query="select myFunction.name as name from MyClass limit 1";
Iterable<ODocument> it=db.command(new OCommandSQL(query)).execute();
if(it.iterator().hasNext()){
ODocument doc1=it.iterator().next();
    String name=doc1.field("name");
    Iterable<ODocument> it2=db.command(newOCommandFunction(name)).execute();
    for(ODocument doc2:it2){
         System.out.println(doc2.getIdentity());
         }
}

希望有所帮助