2016-09-30 5 views
1

Я работаю над некоторым кодом Java для взаимодействия с графиками OrientDB. В настоящее время я смотрю интерфейс для OCommandRequest. Метод execute() может возвращать что-то другое в зависимости от запроса, который мы запускаем ... но я не уверен, что из этого возможно.Что возвращает OrientDB 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? 
} 

Любые указатели, которые кто-то может дать, определенно полезны.

Спасибо!

+0

это могло быть полезным? http://orientdb.com/javadoc/latest/ –

+1

@ IvanMainetti Я уже знаю о Джавадоке ... Я изучал его. Я даже связался с Javadocs OComandRequest в моем вопросе ... Я до сих пор не нашел код, который реализует интерфейс. Я пытаюсь выяснить, какие типы могут быть возвращены методом execute(). До сих пор я знаю, что он может вернуть bool, int или Iterable <>, в зависимости от запроса, который я запускаю. Я хотел бы узнать, что заставляет его возвращаться другому. Например, я ожидаю запрос 'SELECT FROM V', чтобы вернуть' Iterable ', но может ли он вернуть что-то другое, например Integer? Если да, то когда? – TxAG98

ответ

1

Нет документации об этом, это зависит от выполняемой вами команды SQL.

Чтобы узнать тип возврата, вы должны обратиться непосредственно к своему классу. Напр. DROP CLASS возвращает Boolean и т. Д.


В любом случае вы можете использовать этот код, чтобы увидеть тип возвращаемого значения:

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

Правильно ... У меня сейчас что-то в этом роде. Мне просто интересно, есть ли какая-либо документация с таблицей в ней или что-то, что показывает, что возвращает то, что ... то есть 'DROP CLASS ...' возвращает логическое значение, 'DELETE EDGE ... 'возвращает целое число и его значение это число ребер, удаленных ... 'SELECT FROM E' возвращает Iterable , но' SELECT FROM V' возвращает Iterable ... Также, что происходит, когда что-то идет не так? У меня есть нуль? Исключение? Это был бы удобный ресурс ... поскольку это звучит так, как будто это просто хранится как племенное знание на данный момент. – TxAG98

Смежные вопросы