|
@@ -35,23 +35,26 @@ import java.lang.annotation.*;
|
|
|
public @interface TableField {
|
|
|
|
|
|
/**
|
|
|
- * 数据库字段值,
|
|
|
+ * 数据库字段值
|
|
|
+ * <p>
|
|
|
* 不需要配置该值的情况:
|
|
|
* <li> 当 {@link com.baomidou.mybatisplus.core.MybatisConfiguration#mapUnderscoreToCamelCase} 为 true 时,
|
|
|
* (mp下默认是true,mybatis默认是false), 数据库字段值.replace("_","").toUpperCase() == 实体属性名.toUpperCase() </li>
|
|
|
* <li> 当 {@link com.baomidou.mybatisplus.core.MybatisConfiguration#mapUnderscoreToCamelCase} 为 false 时,
|
|
|
- * 数据库字段值.toUpperCase() == 实体属性名.toUpperCase()</li>
|
|
|
+ * 数据库字段值.toUpperCase() == 实体属性名.toUpperCase() </li>
|
|
|
*/
|
|
|
String value() default "";
|
|
|
|
|
|
/**
|
|
|
* 是否为数据库表字段
|
|
|
+ * <p>
|
|
|
* 默认 true 存在,false 不存在
|
|
|
*/
|
|
|
boolean exist() default true;
|
|
|
|
|
|
/**
|
|
|
* 字段 where 实体查询比较条件
|
|
|
+ * <p>
|
|
|
* 默认 {@link SqlCondition.EQUAL}
|
|
|
*/
|
|
|
String condition() default "";
|
|
@@ -69,9 +72,11 @@ public @interface TableField {
|
|
|
|
|
|
/**
|
|
|
* 字段验证策略之 insert: 当insert操作时,该字段拼接insert语句时的策略
|
|
|
+ * <p>
|
|
|
* IGNORED: 直接拼接 insert into table_a(column) values (#{columnProperty});
|
|
|
* NOT_NULL: insert into table_a(<if test="columnProperty != null">column</if>) values (<if test="columnProperty != null">#{columnProperty}</if>)
|
|
|
* NOT_EMPTY: insert into table_a(<if test="columnProperty != null and columnProperty!=''">column</if>) values (<if test="columnProperty != null and columnProperty!=''">#{columnProperty}</if>)
|
|
|
+ * NOT_EMPTY 如果针对的是非 CharSequence 类型的字段则效果等于 NOT_NULL
|
|
|
*
|
|
|
* @since 3.1.2
|
|
|
*/
|
|
@@ -79,9 +84,11 @@ public @interface TableField {
|
|
|
|
|
|
/**
|
|
|
* 字段验证策略之 update: 当更新操作时,该字段拼接set语句时的策略
|
|
|
+ * <p>
|
|
|
* IGNORED: 直接拼接 update table_a set column=#{columnProperty}, 属性为null/空string都会被set进去
|
|
|
* NOT_NULL: update table_a set <if test="columnProperty != null">column=#{columnProperty}</if>
|
|
|
* NOT_EMPTY: update table_a set <if test="columnProperty != null and columnProperty!=''">column=#{columnProperty}</if>
|
|
|
+ * NOT_EMPTY 如果针对的是非 CharSequence 类型的字段则效果等于 NOT_NULL
|
|
|
*
|
|
|
* @since 3.1.2
|
|
|
*/
|
|
@@ -89,9 +96,11 @@ public @interface TableField {
|
|
|
|
|
|
/**
|
|
|
* 字段验证策略之 where: 表示该字段在拼接where条件时的策略
|
|
|
+ * <p>
|
|
|
* IGNORED: 直接拼接 column=#{columnProperty}
|
|
|
* NOT_NULL: <if test="columnProperty != null">column=#{columnProperty}</if>
|
|
|
* NOT_EMPTY: <if test="columnProperty != null and columnProperty!=''">column=#{columnProperty}</if>
|
|
|
+ * NOT_EMPTY 如果针对的是非 CharSequence 类型的字段则效果等于 NOT_NULL
|
|
|
*
|
|
|
* @since 3.1.2
|
|
|
*/
|
|
@@ -99,19 +108,23 @@ public @interface TableField {
|
|
|
|
|
|
/**
|
|
|
* 字段自动填充策略
|
|
|
+ * <p>
|
|
|
+ * 在对应模式下将会忽略 insertStrategy 或 updateStrategy 的配置,等于断言该字段必有值
|
|
|
*/
|
|
|
FieldFill fill() default FieldFill.DEFAULT;
|
|
|
|
|
|
/**
|
|
|
* 是否进行 select 查询
|
|
|
- * <p>大字段可设置为 false 不加入 select 查询范围</p>
|
|
|
+ * <p>
|
|
|
+ * 大字段可设置为 false 不加入 select 查询范围
|
|
|
*/
|
|
|
boolean select() default true;
|
|
|
|
|
|
/**
|
|
|
- * 是否保持使用全局的 Format 的值
|
|
|
- * <p> 只生效于 既设置了全局的 Format 也设置了上面 {@link #value()} 的值 </p>
|
|
|
- * <li> 如果是 false , 全局的 Format 不生效 </li>
|
|
|
+ * 是否保持使用全局的 columnFormat 的值
|
|
|
+ * <p>
|
|
|
+ * 只生效于 既设置了全局的 columnFormat 也设置了上面 {@link #value()} 的值
|
|
|
+ * 如果是 false , 全局的 columnFormat 不生效
|
|
|
*
|
|
|
* @since 3.1.1
|
|
|
*/
|
|
@@ -151,7 +164,7 @@ public @interface TableField {
|
|
|
|
|
|
/**
|
|
|
* 指定小数点后保留的位数,
|
|
|
- * 只生效与 mp 自动注入的 method,
|
|
|
+ * 只生效于 mp 自动注入的 method,
|
|
|
* 建议配合 {@link TableName#autoResultMap()} 一起使用
|
|
|
* <p>
|
|
|
* {@link ParameterMapping#numericScale}
|