spring - @Transactional(read-only = true) 的目的是什么

我试着看了几个 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,因此您将无法对数据进行任何更改。只允许选择。

https://stackoverflow.com/questions/49436105/

相关文章:

git - 如何在 VS Code 中只提交跟踪的文件?

php - NelmioApiDocBundle 不生成文档

python - 在 spark-submit 之前安装 pyspark 作业的要求

sql - Oracle left join 表现得像 inner join

git - 从 GitLab merge 请求中排除特定提交

json - 如何在 vuejs 中将 JSON 对象发布到 Web 服务器?

java - 如何在 GraphQL Java 上拆分模式

javascript - 如何从提供 NET::ERR_CERT_AUTHORITY_INVALID

google-forms - 在谷歌表单中将文本右对齐

protocol-buffers - 运行 protoc 时是否可以指定输出版本?