2013-10-09 74 views
4

自動創建索引時通過orientDB SQL創建索引,我可以做設置爲自動:OrientDB - 與Java

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

我的索引已成功創建,但不會自動更新。有一些標誌,我可以設置爲創建索引告訴它來更新我保存新的記錄?

回答

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的粉絲......以上

0

的代碼對我的作品上orientdb 1.7.9,即本地創建的確實是自動更新的指數,正如人們所期望的。

+0

我怎麼能檢查如果索引被自動從我的代碼更新? – jimijazz