OrientDB OCommandRequest.execute()返回什么?

时间:2016-09-30 19:46:03

标签: orientdb

我正在研究一些与OrientDB图形交互的Java代码。目前我正在查看OCommandRequest的界面。方法execute()可以根据我们运行的查询返回不同的内容......但我不确定它有什么可能。

我有looked at the code,但我对Java有点新鲜。到目前为止,我看到OCommandRequest是一个接口,但就我已经在代码中拉动线程而言,这就是这个。

我在OrientDB Documentation中找不到很多东西,这些东西帮助我了解了什么样的返回类型以及返回时值的含义。

基于我在massapi找到的一些例子,我在我的最后玩了一些例子。有时它会返回一个Integer,有时会返回一个布尔值,而有时我会返回一个Iterable。

我的问题是:是否有一些可用的文档描述了OCommandRequest.execute()返回的原因以及原因?理想情况下,一些格式化的文档很好,但指向代码以查找实现接口的位置也会有所帮助,并允许我更多地提取线程。

目前,我正在仿效我之前链接过的massapi网站中的一个示例(但我不确定这是否真的被认为是处理查询响应的有福方式):

OCommandRequest command = graph.command(new OCommandSQL(query));
Object result = command.execute();
if( result instanceof Integer ) {
    // do stuff if an integer was returned
} else if( result instanceof Boolean ) {
    // do stuff if a boolean was returned
} else if( result instanceof Iterable<OrientVertex> ) {
    // do stuff if an iterable list of vertices was returned
} else {
    // any other types?
}

任何人都可以提供的指示绝对有用。

谢谢!

1 个答案:

答案 0 :(得分:1)

没有关于此的文档,它取决于您执行的SQL命令。

要知道返回类型,您必须直接引用自己的类。例如。 DROP CLASS返回布尔值,依此类推。

无论如何,您可以使用此代码查看返回类型:

OCommandRequest command = g.command(new OCommandSQL(q));    
Object result = command.execute();
System.out.println(q+"\n"+result.getClass().toString()+"\n");