OrientDB - 使用Java创建自动索引

时间:2013-10-09 20:56:49

标签: java orientdb

在orientDB中通过sql创建索引时,我可以通过执行以下操作将其设置为自动:

create index MyClass.my_field on MyClass (my_field) unique

当我向数据库添加记录时,我的索引会更新。但是,如果我通过执行以下操作使用Java创建索引:

OClass target = db.getMetadata().getSchema().getOrCreateClass("MyClass");
target.createProperty("my_field", OType.STRING);
target.createIndex("MyClass.my_field", OClass.INDEX_TYPE.UNIQUE, "my_field");
db.getMetadata().getSchema().save();

我的索引已成功创建,但未自动更新。是否有一些我可以设置为索引创建的标志,以告诉它在保存新记录时更新?

2 个答案:

答案 0 :(得分:1)

嗯,这不是一个很好的解决方案,但我最终做了:

String sql = "create index MyClass.my_field on MyClass (my_field) unique"
OCommandSQL createIndex = new OCommandSQL(sql);
Object done = db.command(createIndex).execute(new Object[0]);

它有效。我永远不会在我的代码中编写原始sql的粉丝......

答案 1 :(得分:0)

上面的代码在orientdb 1.7.9上适用于我,即本机创建的索引确实会自动更新,就像人们期望的那样。