我试着看了几个 SO 问题和 spring 文档,但仍然无法理解 @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和其他多个人,但我正在寻找更多外行术语的答案。
最佳答案
如果您将Transaction
设置为readonly = true
,那么不可以,您将无法调用任何创建、更新或删除数据库数据的服务方法.这是因为 Hibernate session 上的 flushMode
将设置为 NEVER
,因此您将无法对数据进行任何更改。只允许选择。
关于spring - @Transactional(read-only = true) 的目的是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49436105/