2015-04-01 53 views
0

我下面这个教程http://pettergraff.blogspot.fr/2014/01/getting-started-with-orientdb.htmlOrientDB javascript函数,“拯救”上getDataBase不工作

,然后在第四部分中,我们假设创建一个JavaScript函数将在数据库推一些“成员” 。

我知道这个教程是旧的,我已经经历过一些问题,比如我不得不删除块

<handler class="com.orientechnologies.orient.graph.handler.OGraphServerHandler"> 
      <parameters> 
       <parameter value="true" name="enabled"/> 
       <parameter value="50" name="graph.pool.max"/> 
      </parameters> 
     </handler> 

从orientdb服务器-config.xml中,使下面的代码工作:

var db = orient.getDatabase(); 

是正常的吗?

现在,这条线是好的,我有另一个麻烦,这里是“我”的代码:

var db = orient.getDatabase(); 

db.begin(); 

for (var i = 0; i < n; i++) { 
    var name = prefix + "_" + i; 
    var email = name + "@gmail.com"; 
    var member = { 
    "@class": "Member", 
    "name": "robin", 
    "password": "robin", 
    "email": "robin" 
    }; 
    var result = ODocument.save(member); 
} 
db.commit(); 

return 0; 

现在的问题是关于“拯救”的方法

var result = db.save(member); 

这是说方法是ambigus,我只是不知道该怎么办:)

这里是错误(在法国,我喜欢它的英文,但我没有找到如何更改OrientDB上的语言界面)

Erroronparsingscriptatposition#0: ErroronexecutionofthescriptScript: createSomeMembers------^sun.org.mozilla.javascript.EvaluatorException: LechoixdelaméthodeJavacom.orientechnologies.orient.core.command.script.OScriptDocumentDatabaseWrapper.savecorrespondantauxtypesd'argumentJavaScript(object)estambigu.Lesméthodesproposéessontlessuivantes???: classcom.orientechnologies.orient.core.record.impl.ODocumentsave(com.orientechnologies.orient.core.record.ORecord)classcom.orientechnologies.orient.core.record.impl.ODocumentsave(java.util.Map)(<Unknownsource>#18)in<Unknownsource>atlinenumber18LechoixdelaméthodeJavacom.orientechnologies.orient.core.command.script.OScriptDocumentDatabaseWrapper.savecorrespondantauxtypesd'argumentJavaScript(object)estambigu.Lesméthodesproposéessontlessuivantes???: classcom.orientechnologies.orient.core.record.impl.ODocumentsave(com.orientechnologies.orient.core.record.ORecord)classcom.orientechnologies.orient.core.record.impl.ODocumentsave(java.util.Map)(<Unknownsource>#18) 

是否有人知道该怎么办?谢谢 !

回答

1

东西很等价的,但使用Graph API:

var db = orient.getGraph(); 
var member = db.addVertex("class:Member"); 
member.setProperty("name", "robin"); 
member.setProperty("password", "robin"); 
db.commit(); 

return; 
+0

这个解决方案工作正常,但我必须添加从配置文件中删除的块才能使其工作! 你知道它为什么不能和getDatabase一起工作并保存吗? 谢谢! – Charrette 2015-04-02 07:56:10

+0

嗨@Charrette。我从来没有在Javascript函数中使用过Document API。但它可能是一个问题([this one])(https://github.com/orientechnologies/orientdb/issues/3814))或[this](http://stackoverflow.com/a/23848463/4262469)实际上是真的,我不知道。 – vitorenesduarte 2015-04-02 09:00:43

+0

嗨,我在我的研究中看到了这个链接,希望我们稍后能知道!谢谢 – Charrette 2015-04-02 14:40:11

0

应该转换JSON在ODocument致电:

var result = new com.orientechnologies.orient.core.record.impl.ODocument(); 
result.fromJSON(member); 
result.save(); 

甚至:

var result = new com.orientechnologies.orient.core.record.impl.ODocument().fromJSON(member).save(); 
+0

我没有成功使这个解决方案有效,好像它不喜欢我从JSON给他的成员变量,我不是没有为什么。 但vitorenesduarte的解决方案正在工作,谢谢 – Charrette 2015-04-02 07:59:58