我正在使用以下邏輯在Orient DB中啓動事務。
我在觀察的是如果事務沒有在方法內部關閉,它是自動可用的其他方法,這似乎泄漏給我。我會盡量解釋下面的場景:Orient DB中的事務管理DBgraphFactory.getDatabase().begin(type);
public <T> void addVertexToDB(T data){
graphFactory.getDatabase().begin(OTransaction.TXTYPE.OPTIMISTIC);
//logic for fetching data and adding vertex
//I am neither calling rollback nor commit here
}
我有一個更新的另一種方法
public <T> void updateVertexToDB(T data){
//not starting the transaction explicitly and doing some write operation
//logic for fetching data and adding vertex
//I am neither calling rollback nor commit here
}
圖形工廠有以下屬性設置
graphFactory.setAutoStartTx(false);
graphFactory.setRequireTransaction(true);
後市展望:updateVertexToDB應該拋出OTransactionException e
目前的行爲:它通過保存和正常工作來獲得transcation。
所以,只是想知道如何實現這樣的行爲,如果一個方法沒有啓動transcation並試圖寫入DB,它必須拋出OTransactionException e
,直到它不嵌套在已經運行事務的方法中。
OrientGraphFactory沒有任何公開的方法稱爲begin(); – Krishna