背景:aop后置通知,切了一个service1,然后新开了一个线程去调用另外一个service2,标记了新事务。服务器联测,发现service2没有获取到原来service1数据库提交的数据。本机断点调试,断点打在service2里面,发现能够获取到数据。
分析:新开线程新事务,已经与之前的service1没有共享数据库session,获取不到还没有提交的数据。本机调试为什么好使呢?因为,断点暂停了新线程的执行,原来service1的事务不受新现场影响,已经提交到数据库了。这个时候,断点调试继续,就能获取到数据库数据了。
后记:12点是值得的。