refactor: optimize unMappedColumnHandler defined in FlexGlobalConfig

This commit is contained in:
Michael Yang 2024-11-04 09:13:31 +08:00
parent cbdc2968f7
commit 71f8ea7a64
2 changed files with 6 additions and 5 deletions

View File

@ -113,7 +113,7 @@ public class FlexGlobalConfig {
/**
* 未匹配列处理器
*/
private static UnMappedColumnHandler unMappedColumnHandler;
private UnMappedColumnHandler unMappedColumnHandler;
public boolean isPrintBanner() {
return printBanner;
@ -329,12 +329,12 @@ public class FlexGlobalConfig {
this.versionColumn = versionColumn;
}
public static UnMappedColumnHandler getUnMappedColumnHandler() {
public UnMappedColumnHandler getUnMappedColumnHandler() {
return unMappedColumnHandler;
}
public void setUnMappedColumnHandler(UnMappedColumnHandler unMappedColumnHandler) {
FlexGlobalConfig.unMappedColumnHandler = unMappedColumnHandler;
this.unMappedColumnHandler = unMappedColumnHandler;
}
public FlexDataSource getDataSource() {

View File

@ -594,14 +594,15 @@ public class FlexDefaultResultSetHandler extends DefaultResultSetHandler {
}
}
} else {
if (FlexGlobalConfig.getUnMappedColumnHandler() != null) {
UnMappedColumnHandler unMappedColumnHandler = FlexGlobalConfig.getDefaultConfig().getUnMappedColumnHandler();
if (unMappedColumnHandler != null) {
// 增加未匹配列自定义处理
final List<String> unmappedColumnNames = rsw.getUnmappedColumnNames(resultMap, columnPrefix);
for (String unmappedColumnName : unmappedColumnNames) {
// 不明确类型直接取object
final Object value = typeHandlerRegistry.getMappingTypeHandler(UnknownTypeHandler.class).getResult(rsw.getResultSet(), unmappedColumnName);
// 自定义处理未匹配列
FlexGlobalConfig.getUnMappedColumnHandler().handleUnMappedColumn(metaObject, unmappedColumnName, value);
unMappedColumnHandler.handleUnMappedColumn(metaObject, unmappedColumnName, value);
}
}
}