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

时间:2012-10-02 21:58:28

标签: spring spring-transactions

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

1 个答案:

答案 0 :(得分:2)

根据Spring文档,

  

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

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

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

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

有关详细信息,请参阅link