Here is our code to create and setup the schema and index..
private ODatabaseObjectTx connect() {
File file = new File(getFileName());
if (!file.exists()) {
LOGGER.info("Creating new OrientDb at {}", getFileName());
new ODatabaseObjectTx("local:" + getFileName()).create();
}
ensureSchemaIsCreated();
return getDatabase();
}
private void ensureSchemaIsCreated() {
ODatabaseObjectTx db = getDatabase();
try {
OSchema schema = db.getMetadata().getSchema();
OClass bufferItemClass = schema.getClass(SiItem.class);
if (bufferItemClass == null) {
bufferItemClass = schema.createClass(SiItem.class);
bufferItemClass.createProperty("key", OType.STRING).setMandatory(true);
bufferItemClass.createProperty("type", OType.STRING).setMandatory(true);
bufferItemClass.createProperty("bytes", OType.BINARY).setMandatory(true);
bufferItemClass.createIndex("keyIdx", OClass.INDEX_TYPE.UNIQUE, "key");
}
schema.save();
db.getEntityManager().registerEntityClasses("com.epg.model");
} finally {
db.close();
}
}