5

在 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();

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

4

2 回答 2

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 ......

于 2013-10-10T12:55:33.250 回答
0

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

于 2014-11-06T20:31:48.670 回答