|
@@ -15,20 +15,18 @@
|
|
*/
|
|
*/
|
|
package com.baomidou.mybatisplus.core.metadata;
|
|
package com.baomidou.mybatisplus.core.metadata;
|
|
|
|
|
|
-import java.lang.reflect.Field;
|
|
|
|
-
|
|
|
|
-import com.baomidou.mybatisplus.annotation.FieldFill;
|
|
|
|
-import com.baomidou.mybatisplus.annotation.FieldStrategy;
|
|
|
|
-import com.baomidou.mybatisplus.annotation.SqlCondition;
|
|
|
|
-import com.baomidou.mybatisplus.annotation.TableField;
|
|
|
|
-import com.baomidou.mybatisplus.annotation.TableLogic;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.annotation.*;
|
|
import com.baomidou.mybatisplus.core.config.GlobalConfig;
|
|
import com.baomidou.mybatisplus.core.config.GlobalConfig;
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
import com.baomidou.mybatisplus.core.toolkit.TableInfoHelper;
|
|
import com.baomidou.mybatisplus.core.toolkit.TableInfoHelper;
|
|
-
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.sql.SqlUtils;
|
|
|
|
+import lombok.AccessLevel;
|
|
import lombok.Data;
|
|
import lombok.Data;
|
|
|
|
+import lombok.Setter;
|
|
import lombok.experimental.Accessors;
|
|
import lombok.experimental.Accessors;
|
|
|
|
|
|
|
|
+import java.lang.reflect.Field;
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* <p>
|
|
* <p>
|
|
* 数据库表字段反射信息
|
|
* 数据库表字段反射信息
|
|
@@ -95,10 +93,15 @@ public class TableFieldInfo {
|
|
* 标记该字段属于哪个类
|
|
* 标记该字段属于哪个类
|
|
*/
|
|
*/
|
|
private Class<?> clazz;
|
|
private Class<?> clazz;
|
|
|
|
+ /**
|
|
|
|
+ * 缓存 sql select
|
|
|
|
+ */
|
|
|
|
+ @Setter(AccessLevel.NONE)
|
|
|
|
+ private String sqlSelect;
|
|
|
|
|
|
/**
|
|
/**
|
|
* <p>
|
|
* <p>
|
|
- * 存在 TableField 注解构造函数
|
|
|
|
|
|
+ * 存在 TableField 注解时, 使用的构造函数
|
|
* </p>
|
|
* </p>
|
|
*/
|
|
*/
|
|
public TableFieldInfo(GlobalConfig.DbConfig dbConfig, TableInfo tableInfo, Field field,
|
|
public TableFieldInfo(GlobalConfig.DbConfig dbConfig, TableInfo tableInfo, Field field,
|
|
@@ -140,6 +143,11 @@ public class TableFieldInfo {
|
|
this.select = tableField.select();
|
|
this.select = tableField.select();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * <p>
|
|
|
|
+ * 不存在 TableField 注解时, 使用的构造函数
|
|
|
|
+ * </p>
|
|
|
|
+ */
|
|
public TableFieldInfo(GlobalConfig.DbConfig dbConfig, TableInfo tableInfo, Field field) {
|
|
public TableFieldInfo(GlobalConfig.DbConfig dbConfig, TableInfo tableInfo, Field field) {
|
|
this.property = field.getName();
|
|
this.property = field.getName();
|
|
this.el = field.getName();
|
|
this.el = field.getName();
|
|
@@ -219,4 +227,23 @@ public class TableFieldInfo {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 获取 select sql 片段
|
|
|
|
+ *
|
|
|
|
+ * @param dbType 数据库类型
|
|
|
|
+ * @return sql 片段
|
|
|
|
+ */
|
|
|
|
+ public String getSqlSelect(DbType dbType) {
|
|
|
|
+ if (sqlSelect != null) {
|
|
|
|
+ return sqlSelect;
|
|
|
|
+ }
|
|
|
|
+ if (isRelated()) {
|
|
|
|
+ sqlSelect = SqlUtils.sqlWordConvert(dbType, getColumn(), true) + " AS " +
|
|
|
|
+ SqlUtils.sqlWordConvert(dbType, getProperty(), false);
|
|
|
|
+ } else {
|
|
|
|
+ sqlSelect = SqlUtils.sqlWordConvert(dbType, getColumn(), true);
|
|
|
|
+ }
|
|
|
|
+ return sqlSelect;
|
|
|
|
+ }
|
|
}
|
|
}
|