mybatis-plus配置多資料來源後,出現呼叫xml檔案寫的sql說找不到方法,批量儲存/更新資料時找不到表或檢視

yaoshengting發表於2020-10-17

在專案中使用mybatis-plus配置多資料來源之後,出現了兩個問題現象

1.在xml中寫的SQL查詢方法,在呼叫該方法時,報錯說在mapper中找不到方法。

2.另外一個同事在呼叫updateBatch方法時,報錯說表或檢視找不到;但是迴圈呼叫單個更新卻沒有問題。

在配置完多資料來源後,自己寫了幾個測試方法進行測試,出現了第一個問題時,當時一直沒有找到解決方法,Configuration類看了好幾遍都沒有發現問題,mapper的路徑也是分開的。

後來找到了,另外一個資料來源Configuration配置類裡的mapper路徑沒有修改過來,還是指定的另一個資料來源的路徑,囧( ╯□╰ )( ╯□╰ )( ╯□╰ )( ╯□╰ )( ╯□╰ )

在這裡總結如下:

在配置多資料來源時,資料來源的MapperLocations要分開,不能出現重合(如都在同樣的路徑下),否則就會出現上述的問題。

在專案配置多資料來源的時候,會指定每個資料來源的 DAO 層介面位置。然後將 DAO 介面位置和資料來源的關係儲存起來,然後呼叫 DAO 層的時候就呼叫對應的資料來源。但是在這個專案當中,DAO 層沒有分包,兩個資料來源指定的 DAO 層位置都一樣,就導致出現這個問題。
 

參考專案不規範引起的 Mybatis Plus 多資料來源批量操作提示表不存在的問題

 

相關文章