Commit 71348641 authored by liaozan's avatar liaozan 🏀

Refine bizId column

parent f202e5d2
package com.schbrain.framework.autoconfigure.mybatis.biz; package com.schbrain.framework.autoconfigure.mybatis.biz;
import com.baomidou.mybatisplus.core.metadata.TableInfo; import com.baomidou.mybatisplus.core.metadata.*;
import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.schbrain.common.exception.BaseException;
import com.schbrain.framework.autoconfigure.mybatis.annotation.BizId; import com.schbrain.framework.autoconfigure.mybatis.annotation.BizId;
import org.apache.ibatis.session.Configuration; import org.apache.commons.collections4.CollectionUtils;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
/** /**
* @author liaozan * @author liaozan
...@@ -37,11 +39,17 @@ public class BizIdHelper { ...@@ -37,11 +39,17 @@ public class BizIdHelper {
return annotation.value(); return annotation.value();
} }
TableInfo tableInfo = TableInfoHelper.getTableInfo(entityClass); TableInfo tableInfo = TableInfoHelper.getTableInfo(entityClass);
Configuration configuration = tableInfo.getConfiguration(); return getBizIdFieldInfo(tableInfo, bizIdField).getColumn();
if (configuration.isMapUnderscoreToCamelCase()) { }
return StringUtils.camelToUnderline(bizIdField.getName());
private static TableFieldInfo getBizIdFieldInfo(TableInfo tableInfo, Field bizIdField) {
List<TableFieldInfo> fieldInfoList = tableInfo.getFieldList().stream()
.filter(fieldInfo -> fieldInfo.getField() == bizIdField)
.collect(Collectors.toList());
if (CollectionUtils.isEmpty(fieldInfoList)) {
throw new BaseException(String.format("%s can not be found in fieldList", bizIdField.getName()));
} }
return bizIdField.getName(); return fieldInfoList.get(0);
} }
} }
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment