2014-10-13 4 views
0

Я следовал видео 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 использовать? Или, может быть, это совсем другое обходное решение этой проблемы?

+1

Используя последнюю версию сообщества, я удалил блок из файла конфигурации и выполнил следующее без ошибок: 'var db = orient.getDatabase(); db.begin(); для (var i = 0; i PeterVC

ответ

1

Я хотел бы предложить вам посетить нашу документацию по теме функций:

http://www.orientechnologies.com/docs/last/orientdb.wiki/Functions.html

ссылаются, видео довольно старый и, как вы заметили, переменная GDB больше не определен заранее. Я работаю над этим разделом документации, чтобы попытаться сделать ее более надежной. У нас также есть некоторые запланированные улучшения для функциональной части нашей бесплатной Studio.

Сообщите нам, если у вас есть дополнительные вопросы, когда вы прошли через документы.

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