Я следовал видео tutorial при попытке выполнить следующий кодOrientDB функции: Невозможно сохранить документ
for (var i = 0; i < n; i++) {
var name = prefix + "_" + i;
var email = name + "@me.com";
member = {
"@class": "Member",
"name": name,
"password": name,
"email": email
};
var result = gdb.save(member);
}
gdb.commit();
return n;
Я получил сообщение об ошибке
sun.org.mozilla.javascript.EcmaError: ReferenceError: "gdb" is not defined.
(<Unknown source>#15) in <Unknown source> at line number 15
ReferenceError: "gdb" is not defined. (<Unknown source>#15)
Поняв, что, вероятно, нет такой вещи, как «неявная переменная gdb
», о которой упоминал автор, я добавил декларацию перед циклом следующим образом:
var gdb = orient.getDatabase();
Это сообщение об ошибке время сказал
Error on parsing script at position #0: Error on execution of the script Script:
newPOJS ------^ sun.org.mozilla.javascript.internal.WrappedException: Wrapped
com.orientechnologies.orient.core.exception.OConfigurationException: No database
instance found in context (#2) in at line number 2 Wrapped
com.orientechnologies.orient.core.exception.OConfigurationException: No database
instance found in context (#2) No database instance found in context
Быстрый исследования указывают на this question и что, по-видимому открытый bug. Применив предложенный метод обход, то есть удаление следующего блока из файла конфигурации Я попытался снова только, чтобы получить другую ошибку
com.orientechnologies.orient.core.command.script.OScriptDocumentDatabaseWrapper.save matching JavaScript argument types (object) is ambiguous; candidate methods are:
class com.orientechnologies.orient.core.record.impl.ODocument save(java.util.Map)
class com.orientechnologies.orient.core.record.impl.ODocument save(com.orientechnologies.orient.core.record.ORecordInternal)
Теперь есть ли способ, чтобы дать подсказку компилятору как к какой версии метода save
использовать? Или, может быть, это совсем другое обходное решение этой проблемы?
Используя последнюю версию сообщества, я удалил блок из файла конфигурации и выполнил следующее без ошибок: 'var db = orient.getDatabase(); db.begin(); для (var i = 0; i
PeterVC