ODatabaseDocumentTx db = DbPool.getConnection();
String existingRid = "#111:1";
try {
db.begin();
// create transaction record
ODocument doc = new ODocument("TransactionDirectPost");
ODocument transaction = doc.save();
String transactionRid = transaction.getIdentity().toString();
// change data state to sold
String sql = "update ? set metaInternal.dataState = ?";
db.command(new OCommandSQL(sql)).execute(new ORecordId(existingRid), "SOLD");
// create an edge
sql = "create edge SentDirectPost from ? to ?";
db.command(new OCommandSQL(sql)).execute(new ORecordId(existingRid), new ORecordId(transactionRid));
db.commit();
} catch (Exception e) {
db.rollback();
} finally {
db.close();
}