
此場景是一個線程入庫result,另外有一個線程在查result表,看是否有待執行的result
Mybatis對緩存提供支持,但是在沒有配置的默認情況下,它只開啟一級緩存,一級緩存只是相對於同一個SqlSession而言。所以在參數和SQL完全一樣的情況下,我們使用同一個SqlSession對象調用一個Mapper方法,往往只執行一次SQL,因為使用SelSession第一次查詢后,MyBatis會將其放在緩存中,以后再查詢的時候,如果沒有聲明需要刷新,並且緩存沒有超時的情況下,SqlSession都會取出當前緩存的數據,而不會再次發送SQL到數據庫。
所以這段代碼在3這里會有問題,可使用其他方式判斷待執行的result,或者去掉第一層判斷,直接使用2,3判斷,或者在對應的select標簽里加上flushCache="true"。
