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