如何调整Spring-Data读请求不开启事务
概述
接着上一篇的文章MyCAT-Spring-Boot-JPA中间件使用过程的问题提到的问题, Spring Data 默认会对所有的读数据请求加上事务, 但是在使用类似MyCAT、KingShard的读写分离中间件的时后, 会将带有事务的请求都发送到主库上去,而达不到读写分离需求。 因此我们需要对Spring Data进行一定的改造,能够让读数据的请求不被事务包裹, 而达到利用中间件读写分离的目的。
基于之前的文章MyCAT-Spring-Boot-JPA中间件使用过程的问题中的分析, 我们发现SimpleJapRepository是在类级别加上了@Transaction(readOnly=true)的标注, 这会导致所有的 读请求都被事务包裹,所以我们需要将这个默认的设置删除掉。