mirror of
https://gitee.com/mybatis-flex/mybatis-flex.git
synced 2025-12-08 01:28:24 +08:00
fix: 使 VO 类支持重名映射与监听器。
This commit is contained in:
parent
7609ead91c
commit
3b90960156
@ -15,15 +15,7 @@
|
||||
*/
|
||||
package com.mybatisflex.core.table;
|
||||
|
||||
import com.mybatisflex.annotation.Column;
|
||||
import com.mybatisflex.annotation.ColumnAlias;
|
||||
import com.mybatisflex.annotation.ColumnMask;
|
||||
import com.mybatisflex.annotation.Id;
|
||||
import com.mybatisflex.annotation.InsertListener;
|
||||
import com.mybatisflex.annotation.NoneListener;
|
||||
import com.mybatisflex.annotation.SetListener;
|
||||
import com.mybatisflex.annotation.Table;
|
||||
import com.mybatisflex.annotation.UpdateListener;
|
||||
import com.mybatisflex.annotation.*;
|
||||
import com.mybatisflex.core.BaseMapper;
|
||||
import com.mybatisflex.core.FlexGlobalConfig;
|
||||
import com.mybatisflex.core.exception.FlexExceptions;
|
||||
@ -31,53 +23,20 @@ import com.mybatisflex.core.query.QueryChain;
|
||||
import com.mybatisflex.core.query.QueryColumn;
|
||||
import com.mybatisflex.core.query.QueryCondition;
|
||||
import com.mybatisflex.core.query.QueryWrapper;
|
||||
import com.mybatisflex.core.util.ClassUtil;
|
||||
import com.mybatisflex.core.util.CollectionUtil;
|
||||
import com.mybatisflex.core.util.Reflectors;
|
||||
import com.mybatisflex.core.util.StringUtil;
|
||||
import com.mybatisflex.core.util.*;
|
||||
import org.apache.ibatis.io.ResolverUtil;
|
||||
import org.apache.ibatis.reflection.Reflector;
|
||||
import org.apache.ibatis.reflection.TypeParameterResolver;
|
||||
import org.apache.ibatis.type.JdbcType;
|
||||
import org.apache.ibatis.type.TypeException;
|
||||
import org.apache.ibatis.type.TypeHandler;
|
||||
import org.apache.ibatis.type.TypeHandlerRegistry;
|
||||
import org.apache.ibatis.type.UnknownTypeHandler;
|
||||
import com.mybatisflex.core.util.MapUtil;
|
||||
import org.apache.ibatis.type.*;
|
||||
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
import java.lang.reflect.Modifier;
|
||||
import java.lang.reflect.ParameterizedType;
|
||||
import java.lang.reflect.Type;
|
||||
import java.lang.reflect.TypeVariable;
|
||||
import java.lang.reflect.*;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigInteger;
|
||||
import java.sql.Time;
|
||||
import java.sql.Timestamp;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
import java.time.Month;
|
||||
import java.time.OffsetDateTime;
|
||||
import java.time.OffsetTime;
|
||||
import java.time.Year;
|
||||
import java.time.YearMonth;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.time.*;
|
||||
import java.time.chrono.JapaneseDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@ -222,7 +181,29 @@ public class TableInfoFactory {
|
||||
|
||||
// 初始化表名
|
||||
Table table = entityClass.getAnnotation(Table.class);
|
||||
if (table != null) {
|
||||
if (table == null) {
|
||||
ViewObject vo = entityClass.getAnnotation(ViewObject.class);
|
||||
if (vo != null) {
|
||||
TableInfo refTableInfo = ofEntityClass(vo.ref());
|
||||
// 设置 VO 类对应的真实的表名
|
||||
tableInfo.setSchema(refTableInfo.getSchema());
|
||||
tableInfo.setTableName(refTableInfo.getTableName());
|
||||
// 将 @Table 注解的属性复制到 VO 类当中
|
||||
if (vo.copyTableProps()) {
|
||||
tableInfo.setComment(refTableInfo.getComment());
|
||||
tableInfo.setCamelToUnderline(refTableInfo.isCamelToUnderline());
|
||||
tableInfo.setDataSource(refTableInfo.getDataSource());
|
||||
|
||||
tableInfo.setOnSetListeners(refTableInfo.getOnSetListeners());
|
||||
tableInfo.setOnInsertColumns(refTableInfo.getOnInsertColumns());
|
||||
tableInfo.setOnUpdateListeners(refTableInfo.getOnUpdateListeners());
|
||||
}
|
||||
} else {
|
||||
// 默认为类名转驼峰下划线
|
||||
String tableName = StringUtil.camelToUnderline(entityClass.getSimpleName());
|
||||
tableInfo.setTableName(tableName);
|
||||
}
|
||||
} else {
|
||||
tableInfo.setSchema(table.schema());
|
||||
tableInfo.setTableName(table.value());
|
||||
tableInfo.setCamelToUnderline(table.camelToUnderline());
|
||||
@ -255,10 +236,6 @@ public class TableInfoFactory {
|
||||
if (StringUtil.isNotBlank(table.dataSource())) {
|
||||
tableInfo.setDataSource(table.dataSource());
|
||||
}
|
||||
} else {
|
||||
// 默认为类名转驼峰下划线
|
||||
String tableName = StringUtil.camelToUnderline(entityClass.getSimpleName());
|
||||
tableInfo.setTableName(tableName);
|
||||
}
|
||||
|
||||
// 初始化字段相关
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user