当我将一个事务标记为只读时,Spring会做什么?

3

当我将事务标记为只读时,Spring会做什么?我应该期望哪些改进/缺点?

1个回答

2
根据Spring文档,只读事务可用于代码读取但不修改数据的情况下。只读事务在某些情况下可以作为优化手段,例如使用Hibernate时。该属性仅为提供程序提供提示,行为取决于此处的Hibernate。如果将readOnly设置为true,则当前Hibernate会话中的刷新模式将设置为FlushMode.NEVER,从而防止会话提交事务。此外,JDBC连接上也会调用setReadOnly(true),这也是对底层数据库的提示。如果您的数据库支持它(很可能是这样),则基本上具有与FlushMode.NEVER相同的效果,但更强,因为您甚至无法手动刷新。请参考link了解更多详细信息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接