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

在上面的代码片段中,nestedTransactionalMethod()是否会创建一个新的会话?那意味着传递给它的模型是分开的?嵌套REQUIRES_NEW事务后,hibernate会创建新会话吗?

这些假设是否正确?

回答

0

PROPAGATION_REQUIRES_NEW对每个受影响的事务处理范围使用独立事务。在这种情况下,底层物理事务是不同的,因此可以独立提交或回滚,外部事务不受内部事务的回滚状态影响。 它不会创建新会话,而是使用当前会话来创建传播范围所定义的新事务。