1. 程式人生 > >ssm之路(15)整合ssm+逆向工程開發注意事項(Result Maps collection already contains value for cn.itcast.ssm.mapper.It)

ssm之路(15)整合ssm+逆向工程開發注意事項(Result Maps collection already contains value for cn.itcast.ssm.mapper.It)

這裡有個結合逆向工程來使用的坑

上一章中整合遇到問題,有個關於逆向工程的坑,這裡需要說明一下:

因為我是通過mapper代理方式來整合的,所以當我再mapper裡新建我要自定義的檔案時,會造成無意不遵循規範的錯誤

我是通過mapper代理開發的方式來弄的,通過MapperScannerConfiguer來掃描mapper包下的對映檔案,因此它必須遵循同包同名 的條件,但當我新建檔案如下:itemsMapper,itemsMapper.xml是通過逆向工程引入的,itemsMapperCustom,itemsMapperCustom.xml是我自己建的,這樣你就在無意中破壞了同包同名的規範,程式可能會判定ItemMapper和ItemMapperCustom.xml的名稱不一樣,而報錯說:Result Maps collection already contains value for cn.itcast.ssm.mapper.ItemsMapper.BaseResultMap

解決的辦法是將目錄換成mapper--items-(items.java,itemsMapper.xml),,,,,,itemsCustom--(itemsCustom.java,,itemsCustomMapper.xml)

最好的方式還是讓二者分離:

在applicationContext-dao.xml中的sqlsessionFactory中加入resource資源目錄下的掃描: