保存到新集群 returns 错误
Saving to new cluster returns error
我正在 xtend
/Java
中动态创建集群
for (int i : 0 ..< DistributorClusters.length) {
val clusterName = classnames.get(i) + clusterSuffix;
database.command(
new OCommandSQL('''ALTER CLASS «classnames.get(i)» ADDCLUSTER «clusterName»''')).execute();
}
然后创建我添加 oRole
并将安全性授予新的 oRole
val queryOroleCreation = '''INSERT INTO orole SET name = '«clusterSuffix»', mode = 0, inheritedRole = (SELECT FROM orole WHERE name = 'Default')''';
val ODocument result = database.command(new OCommandSQL(queryOroleCreation)).execute();
for (int i : 0 ..< classnames.length) {
database.command(
new OCommandSQL(
'''GRANT ALL ON database.cluster.«classnames.get(i)»«clusterSuffix» TO «clusterSuffix»''')).
execute();
}
最后,我尝试将 JsonObject
保存到新创建的集群之一。我检查了数据库,集群存在。
val doc = new ODocument();
doc.fromJSON(jsonToSave.toString());
val savedDoc = database.save(doc, "ClassName"+clusterSuffix);
database.commit();
但是Orient returns出现以下错误:
SEVERE: java.lang.IllegalArgumentException: Cluster name 'cluster:ClassNameclusterSuffix' is not configured
我的问题:
是什么导致该异常?你能为创建的新集群添加价值吗?
编辑
doc
对象包含对其他 类 的引用。即:
{
@class:"Customer",
@version:0,
name:"Kwik-E-Mart",
user : {
@class:"User",
@version:0,
username: "Apu",
firstName:"Apu",
lastName:"Nahasapeemapetilon"
}
}
用户在默认集群中创建,但 customer
抛出异常。
您应该删除 "cluster:" 部分。该方法的第二个参数是"Name of the cluster where to save",不需要任何特殊的前缀。
所以:
val savedDoc = database.save(doc, "ClassName"+clusterSuffix);
应该就可以了
我发现使用查询效果很好source。
以下代码在第一次尝试时有效:
val query = '''INSERT INTO ClassNameCLUSTER «"ClassName"+clusterSuffix» CONTENT «jsonToSave.toString()»'''
val ODocument savedDoc = database.command(new OCommandSQL(query)).execute();
我正在 xtend
/Java
for (int i : 0 ..< DistributorClusters.length) {
val clusterName = classnames.get(i) + clusterSuffix;
database.command(
new OCommandSQL('''ALTER CLASS «classnames.get(i)» ADDCLUSTER «clusterName»''')).execute();
}
然后创建我添加 oRole
并将安全性授予新的 oRole
val queryOroleCreation = '''INSERT INTO orole SET name = '«clusterSuffix»', mode = 0, inheritedRole = (SELECT FROM orole WHERE name = 'Default')''';
val ODocument result = database.command(new OCommandSQL(queryOroleCreation)).execute();
for (int i : 0 ..< classnames.length) {
database.command(
new OCommandSQL(
'''GRANT ALL ON database.cluster.«classnames.get(i)»«clusterSuffix» TO «clusterSuffix»''')).
execute();
}
最后,我尝试将 JsonObject
保存到新创建的集群之一。我检查了数据库,集群存在。
val doc = new ODocument();
doc.fromJSON(jsonToSave.toString());
val savedDoc = database.save(doc, "ClassName"+clusterSuffix);
database.commit();
但是Orient returns出现以下错误:
SEVERE: java.lang.IllegalArgumentException: Cluster name 'cluster:ClassNameclusterSuffix' is not configured
我的问题: 是什么导致该异常?你能为创建的新集群添加价值吗?
编辑
doc
对象包含对其他 类 的引用。即:
{
@class:"Customer",
@version:0,
name:"Kwik-E-Mart",
user : {
@class:"User",
@version:0,
username: "Apu",
firstName:"Apu",
lastName:"Nahasapeemapetilon"
}
}
用户在默认集群中创建,但 customer
抛出异常。
您应该删除 "cluster:" 部分。该方法的第二个参数是"Name of the cluster where to save",不需要任何特殊的前缀。
所以:
val savedDoc = database.save(doc, "ClassName"+clusterSuffix);
应该就可以了
我发现使用查询效果很好source。
以下代码在第一次尝试时有效:
val query = '''INSERT INTO ClassNameCLUSTER «"ClassName"+clusterSuffix» CONTENT «jsonToSave.toString()»'''
val ODocument savedDoc = database.command(new OCommandSQL(query)).execute();