2016-04-03 31 views
0
transactionalMethod() { 
    Model model = service.fetch() 
    nestedTransactionalMethod(model) //REQUIRES_NEW transaction 
} 

在上面的代碼片段中,nestedTransactionalMethod()是否會創建一個新的會話?那意味着傳遞給它的模型是分開的?嵌套REQUIRES_NEW事務後,hibernate會創建新會話嗎?

這些假設是否正確?

回答

0

PROPAGATION_REQUIRES_NEW對每個受影響的事務處理範圍使用獨立事務。在這種情況下,底層物理事務是不同的,因此可以獨立提交或回滾,外部事務不受內部事務的回滾狀態影響。 它不會創建新會話,而是使用當前會話來創建傳播範圍所定義的新事務。