mapper 方法重载
时间: 2023-09-01 19:09:22 浏览: 56
回答: Mapper接口方法不能重载的原因是因为在解析Mapper接口和Mapper.xml文件时,会将方法名作为id属性的一部分,而id属性在StrictMap中作为key存储,不允许有重复的key。\[1\]\[2\]\[3\]所以如果Mapper接口中存在重载的方法,就会导致id相同的情况出现,从而无法正确解析和映射到对应的SQL语句。因此,为了避免这种冲突,Mapper接口方法不能重载。解决这个问题的思路是尽可能编写一个能包含全部参数签名的方法,然后让其他重载方法去调用它。这样可以实现方法的重载效果,同时避免了id冲突的问题。
#### 引用[.reference_title]
- *1* *2* [MyBatis内的Mapper接口方法为什么不能重载](https://blog.csdn.net/weixin_38192427/article/details/123314290)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [Mapper.xml方法重载-解决方案](https://blog.csdn.net/qq_43324779/article/details/123569436)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]