TableInfoHelper
/**
*
* 主键属性初始化
*
*
* @param tableInfo
* @param field
* @param clazz
* @return true 继续下一个属性判断,返回 continue;
*/
private static boolean initTableId(GlobalConfiguration globalConfig, TableInfo tableInfo, Field field, Class> clazz) {
TableId tableId = field.getAnnotation(TableId.class);
if (tableId != null) {
if (StringUtils.isEmpty(tableInfo.getKeyColumn())) {
/*
* 主键策略( 注解 > 全局 > 默认 )
*/
if (IdType.INPUT != tableId.type()) {
tableInfo.setIdType(tableId.type());
} else {
tableInfo.setIdType(globalConfig.getIdType());
}
/* 字段 */
String column = field.getName();
if (StringUtils.isNotEmpty(tableId.value())) {
column = tableId.value();
tableInfo.setKeyRelated(true);
} else {
// 开启字段下划线申明
if (globalConfig.isDbColumnUnderline()) {
column = StringUtils.camelToUnderline(column);
}
// 全局大写命名
if (globalConfig.isCapitalMode()) {
column = column.toUpperCase();
}
}
tableInfo.setKeyColumn(column);
tableInfo.setKeyProperty(field.getName());
return true;
} else {
throwExceptionId(clazz);
}
}
return false;
}
只要在Entity中主键上设置了TableId,那么就不可能用到设置的,只能使用全局的配置。