OrientDB javascript 函数,getDataBase 上的 "save" 不工作
OrientDB javascript function, "save" on getDataBase not working
我正在学习本教程http://pettergraff.blogspot.fr/2014/01/getting-started-with-orientdb.html
在第四部分,我们假设创建一个 javascript 函数,它将在数据库中推送一些 "Members"。
我知道这个教程很旧,我已经遇到了一些问题,例如我不得不删除块
<handler class="com.orientechnologies.orient.graph.handler.OGraphServerHandler">
<parameters>
<parameter value="true" name="enabled"/>
<parameter value="50" name="graph.pool.max"/>
</parameters>
</handler>
来自 orientdb-server-config.xml,使以下代码工作:
var db = orient.getDatabase();
这正常吗?
既然这条线没问题,我又遇到了麻烦,这里是"my"代码:
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;
现在问题出在"save"方法上
var result = db.save(member);
说方法有歧义,我就是不知道怎么办:)
这是错误(法语,我喜欢英语,但我没有找到如何在 OrientDB 界面上更改 de 语言)
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)
有人知道该怎么做吗?谢谢!
相当等价的东西,但使用图表 API:
var db = orient.getGraph();
var member = db.addVertex("class:Member");
member.setProperty("name", "robin");
member.setProperty("password", "robin");
db.commit();
return;
您应该通过调用以下方法在 ODocument 中转换 JSON:
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();
我正在学习本教程http://pettergraff.blogspot.fr/2014/01/getting-started-with-orientdb.html
在第四部分,我们假设创建一个 javascript 函数,它将在数据库中推送一些 "Members"。
我知道这个教程很旧,我已经遇到了一些问题,例如我不得不删除块
<handler class="com.orientechnologies.orient.graph.handler.OGraphServerHandler">
<parameters>
<parameter value="true" name="enabled"/>
<parameter value="50" name="graph.pool.max"/>
</parameters>
</handler>
来自 orientdb-server-config.xml,使以下代码工作:
var db = orient.getDatabase();
这正常吗?
既然这条线没问题,我又遇到了麻烦,这里是"my"代码:
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;
现在问题出在"save"方法上
var result = db.save(member);
说方法有歧义,我就是不知道怎么办:)
这是错误(法语,我喜欢英语,但我没有找到如何在 OrientDB 界面上更改 de 语言)
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)
有人知道该怎么做吗?谢谢!
相当等价的东西,但使用图表 API:
var db = orient.getGraph();
var member = db.addVertex("class:Member");
member.setProperty("name", "robin");
member.setProperty("password", "robin");
db.commit();
return;
您应该通过调用以下方法在 ODocument 中转换 JSON:
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();