当我将事务标记为只读时,Spring会做什么?我应该期待什么样的改进/弊端?
答案 0 :(得分:2)
根据Spring文档,
只读状态:代码时可以使用只读事务 读取但不修改数据。只读事务可能很有用 在某些情况下优化,例如在使用Hibernate时。
这个属性只是对提供者的一个提示,行为依赖于,在这种情况下,Hibernate。
如果将readOnly指定为true,则刷新模式将在当前Hibernate会话中设置为FlushMode.NEVER,以防止会话提交事务。
此外,将在JDBC Connection上调用setReadOnly(true),这也是底层数据库的提示。如果你的数据库支持它(很可能它),它与FlushMode.NEVER的效果基本相同,但它更强大,因为你甚至无法手动刷新。
有关详细信息,请参阅link。