OrientDB: доступ к данным результатов запроса в функции на стороне сервера

OrientDB позволяет создавать функции javascript на стороне сервера. Есть ли способ получить доступ к промежуточным результатам запроса внутри функции javascript на стороне сервера. Например. Если я возвращаю результаты запроса, я получаю массив ответов json, как и ожидалось. Но если я попытаюсь получить доступ к результату запроса между функциями, например:

var comps = db.query("SELECT code from Company");

db.begin();
for(var i=0; i<comps.length; i++){
  var c = comps[i];
  db.save({
    "@class":"Temp",
    col:  c.code
  });
}
db.commit();

return comps;

Для вышеуказанной функции я получаю пустые значения, хранящиеся в столбце "col".

Согласно моему наблюдению, OrientDb возвращает контекст вместо фактических результатов внутри функции.

Заранее спасибо.

2 ответа

Решение

Замещать c.code с c.field("code"),

Основываясь на вашем замечании "OrientDb возвращает контекст вместо фактических результатов внутри функции", я предполагаю, что вы работаете с Java 8. Дело в том, что поведение OrientDB в этом отношении отличается между Java 8 и Java 7 (из-за различных базовых движков Javascript: Нашорн против Носорога). Существует несколько известных (связанных) проблем, см. Эту ветку, например.

Другие вопросы по тегам