3

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

4

1 回答 1

2

根据 Spring 文档,

只读状态:当您的代码读取但不修改数据时,可以使用只读事务。在某些情况下,只读事务可能是一种有用的优化,例如当您使用 Hibernate 时。

这个属性只是对提供者的一个提示,行为取决于,在这种情况下,Hibernate。

如果将 readOnly 指定为 true,则刷新模式将在当前 Hibernate Session 中设置为 FlushMode.NEVER,从而防止会话提交事务。

此外,将在 JDBC 连接上调用 setReadOnly(true),这也是对底层数据库的提示。如果您的数据库支持它(很可能支持),这与 FlushMode.NEVER 的效果基本相同,但它更强大,因为您甚至无法手动刷新。

请参阅链接了解更多详情。

于 2012-10-03T07:56:30.603 回答