@Transactional的目的是什么(只读= true)

时间:2018-03-22 18:36:09

标签: spring spring-transactions

我尝试了几个SO问题和弹簧文档,但仍然无法理解@Transactional(read-only = true)的重要性。

它是否只能用于只读事务,或者它可以用于下面实际读写数据库的东西

@Transactional(readOnly = true, propagation = Propagation.REQUIRED
                          , rollbackFor= {Exception.class})
public void doMultipleOperation(MyObj obj) throws Exception{
//call delete DAO method
//call insert DAO method
//call select DAO method
}

我发现了类似this和其他多个问题的类似问题,但我正在寻找更多外行人的答案。

1 个答案:

答案 0 :(得分:0)

如果将Transaction设置为readonly = true,则不会,您将无法调用任何创建,更新或删除数据库中数据的服务方法。这是因为Hibernate会话中的flushMode将设置为NEVER,因此您将无法对数据进行任何更改。只允许选择。