Skip to content

Commit

Permalink
fix: multiple providers
Browse files Browse the repository at this point in the history
  • Loading branch information
yuanhao18 committed Feb 29, 2024
1 parent 30e8c35 commit 56a9a53
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ public void test() {
SqlSession sqlSession = MybatisHelper.getSqlSession();
try {
CountryMultipleMapper mapper = sqlSession.getMapper(CountryMultipleMapper.class);

Country country = new Country();
country.setId(200);
country.setCountrycode("AB");
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
package tk.mybatis.mapper.mapper;

import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.base.insert.InsertMapper;
import tk.mybatis.mapper.common.base.select.SelectMapper;
import tk.mybatis.mapper.model.Country;

//@RegisterMapper
public interface CountryMultipleMapper
// extends Mapper<Country> {
extends MultipleCommonMapper<Country> {

}
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ public class MapperHelper {
/**
* 注册的通用Mapper接口
*/
private Map<Class<?>, MapperTemplate> registerMapper = new ConcurrentHashMap<Class<?>, MapperTemplate>();
private Map<Class<?>, Collection<MapperTemplate>> registerMapper = new ConcurrentHashMap<Class<?>, Collection<MapperTemplate>>();

/**
* 通用Mapper配置
Expand Down Expand Up @@ -142,7 +142,7 @@ private Collection<MapperTemplate> fromMapperClasses(Class<?> mapperClass) {
public void registerMapper(Class<?> mapperClass) {
if (!registerMapper.containsKey(mapperClass)) {
registerClass.add(mapperClass);
fromMapperClasses(mapperClass).forEach(c -> registerMapper.put(mapperClass, c));
registerMapper.put(mapperClass,fromMapperClasses(mapperClass));
}
//自动注册继承的接口
Class<?>[] interfaces = mapperClass.getInterfaces();
Expand Down Expand Up @@ -196,9 +196,11 @@ public MapperTemplate isMapperMethod(String msId) {
* @return
*/
public MapperTemplate getMapperTemplateByMsId(String msId) {
for (Map.Entry<Class<?>, MapperTemplate> entry : registerMapper.entrySet()) {
if (entry.getValue().supportMethod(msId)) {
return entry.getValue();
for (Map.Entry<Class<?>, Collection<MapperTemplate>> entry : registerMapper.entrySet()) {
for (MapperTemplate t : entry.getValue()) {
if (t.supportMethod(msId)) {
return t;
}
}
}
return null;
Expand Down

0 comments on commit 56a9a53

Please sign in to comment.