Skip to content

Commit

Permalink
文档注释调整 github issues/741 新增 Lambda 类构造函数使用注释
Browse files Browse the repository at this point in the history
  • Loading branch information
qmdx committed Jan 28, 2019
1 parent f492dea commit 0851c2f
Show file tree
Hide file tree
Showing 17 changed files with 205 additions and 68 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
*/
package com.baomidou.mybatisplus.core.conditions;

import java.util.Objects;

import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;
import com.baomidou.mybatisplus.core.metadata.TableInfo;
Expand All @@ -23,8 +25,6 @@
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.TableInfoHelper;

import java.util.Objects;

/**
* <p>
* 条件构造抽象类
Expand Down Expand Up @@ -59,13 +59,13 @@ public String getSqlSet() {
public abstract MergeSegments getExpression();

/**
* 获取自定义SQL 简化自定义XML复杂情况
* 使用方法
* `自定义sql` + ${ew.customSqlSegment}
* 获取自定义SQL 简化自定义XML复杂情况<br/>
* 使用方法<br/>
* `自定义sql` + ${ew.customSqlSegment}<br/>
* <p>1.逻辑删除需要自己拼接条件 (之前自定义也同样)</p>
* <p>2.不支持wrapper中附带实体的情况 (wrapper自带实体会更麻烦)</p>
* <p>3.用法 ${ew.customSqlSegment} (不需要where标签包裹,切记!)</>
* <p>4.ew是wrapper定义别名,可自行替换</>
* <p>3.用法 ${ew.customSqlSegment} (不需要where标签包裹,切记!)</p>
* <p>4.ew是wrapper定义别名,可自行替换</p>
*/
public abstract String getCustomSqlSegment();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,9 @@ default <V> Children allEq(Map<R, V> params, boolean null2IsNull) {
}

/**
* <p>
* map 所有非空属性等于 =
* </p>
*
* @param condition 执行条件
* @param params map 类型的参数, key 是字段名, value 是字段值
Expand All @@ -69,7 +71,9 @@ default <V> Children allEq(BiPredicate<R, V> filter, Map<R, V> params, boolean n
}

/**
* 字段过滤接口,传入多参数时允许对参数进行过滤
* <p>
* 字段过滤接口,传入多参数时允许对参数进行过滤<br/>
* </p>
*
* @param condition 执行条件
* @param filter 返回 true 来允许字段传入比对条件中
Expand All @@ -87,7 +91,9 @@ default Children eq(R column, Object val) {
}

/**
* <p>
* 等于 =
* </p>
*
* @param condition 执行条件
* @param column 字段
Expand All @@ -104,7 +110,9 @@ default Children ne(R column, Object val) {
}

/**
* <p>
* 不等于 <>
* </p>
*
* @param condition 执行条件
* @param column 字段
Expand All @@ -121,7 +129,9 @@ default Children gt(R column, Object val) {
}

/**
* <p>
* 大于 >
* </p>
*
* @param condition 执行条件
* @param column 字段
Expand All @@ -138,7 +148,9 @@ default Children ge(R column, Object val) {
}

/**
* <p>
* 大于等于 >=
* </p>
*
* @param condition 执行条件
* @param column 字段
Expand All @@ -155,7 +167,9 @@ default Children lt(R column, Object val) {
}

/**
* <p>
* 小于 <
* </p>
*
* @param condition 执行条件
* @param column 字段
Expand All @@ -172,7 +186,9 @@ default Children le(R column, Object val) {
}

/**
* <p>
* 小于等于 <=
* </p>
*
* @param condition 执行条件
* @param column 字段
Expand All @@ -189,7 +205,9 @@ default Children between(R column, Object val1, Object val2) {
}

/**
* <p>
* BETWEEN 值1 AND 值2
* </p>
*
* @param condition 执行条件
* @param column 字段
Expand All @@ -207,7 +225,9 @@ default Children notBetween(R column, Object val1, Object val2) {
}

/**
* <p>
* NOT BETWEEN 值1 AND 值2
* </p>
*
* @param condition 执行条件
* @param column 字段
Expand All @@ -225,7 +245,9 @@ default Children like(R column, Object val) {
}

/**
* <p>
* LIKE '%值%'
* </p>
*
* @param condition 执行条件
* @param column 字段
Expand All @@ -242,7 +264,9 @@ default Children notLike(R column, Object val) {
}

/**
* <p>
* NOT LIKE '%值%'
* </p>
*
* @param condition 执行条件
* @param column 字段
Expand All @@ -259,7 +283,9 @@ default Children likeLeft(R column, Object val) {
}

/**
* <p>
* LIKE '%值'
* </p>
*
* @param condition 执行条件
* @param column 字段
Expand All @@ -276,7 +302,9 @@ default Children likeRight(R column, Object val) {
}

/**
* <p>
* LIKE '值%'
* </p>
*
* @param condition 执行条件
* @param column 字段
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,10 @@ default Children and(Function<Param, Param> func) {
}

/**
* AND 嵌套
* 例: and(i -> i.eq("name", "李白").ne("status", "活着"))
* <p>
* AND 嵌套<br/>
* 例: and(i -> i.eq("name", "李白").ne("status", "活着"))<br/>
* </p>
*
* @param condition 执行条件
* @param func 函数
Expand All @@ -54,8 +56,10 @@ default Children or(Function<Param, Param> func) {
}

/**
* OR 嵌套
* 例: or(i -> i.eq("name", "李白").ne("status", "活着"))
* <p>
* OR 嵌套<br/>
* 例: or(i -> i.eq("name", "李白").ne("status", "活着"))<br/>
* </p>
*
* @param condition 执行条件
* @param func 函数
Expand All @@ -71,8 +75,10 @@ default Children nested(Function<Param, Param> func) {
}

/**
* 正常嵌套 不带 AND 或者 OR
* <p>
* 正常嵌套 不带 AND 或者 OR<br/>
* 例: nested(i -> i.eq("name", "李白").ne("status", "活着"))
* </p>
*
* @param condition 执行条件
* @param func 函数
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@
*/
package com.baomidou.mybatisplus.core.conditions.query;

import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Predicate;

import com.baomidou.mybatisplus.core.conditions.AbstractLambdaWrapper;
import com.baomidou.mybatisplus.core.conditions.SharedString;
import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
Expand All @@ -23,10 +27,6 @@
import com.baomidou.mybatisplus.core.toolkit.TableInfoHelper;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;

import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Predicate;

/**
* <p>
* Lambda 语法使用 Wrapper
Expand All @@ -40,19 +40,36 @@ public class LambdaQueryWrapper<T> extends AbstractLambdaWrapper<T, LambdaQueryW
implements Query<LambdaQueryWrapper<T>, T, SFunction<T, ?>> {

/**
* <p>
* 查询字段
* </p>
*/
private SharedString sqlSelect = new SharedString();

/**
* <p>
* 不建议直接 new 该实例,使用 Wrappers.lambdaQuery(entity)
* </p>
*/
public LambdaQueryWrapper() {
this(null);
}

/**
* <p>
* 不建议直接 new 该实例,使用 Wrappers.lambdaQuery(entity)
* </p>
*/
public LambdaQueryWrapper(T entity) {
super.setEntity(entity);
super.initNeed();
}

/**
* <p>
* 不建议直接 new 该实例,使用 Wrappers.lambdaQuery(...)
* </p>
*/
LambdaQueryWrapper(T entity, Class<T> entityClass, SharedString sqlSelect, AtomicInteger paramNameSeq,
Map<String, Object> paramNameValuePairs, MergeSegments mergeSegments) {
super.setEntity(entity);
Expand Down Expand Up @@ -89,11 +106,11 @@ public LambdaQueryWrapper<T> select(Predicate<TableFieldInfo> predicate) {
* 过滤查询的字段信息(主键除外!)
* </p>
* <p>
* 例1: 只要 java 字段名以 "test" 开头的 -> select(i -> i.getProperty().startsWith("test"))
* 例2: 只要 java 字段属性是 CharSequence 类型的 -> select(TableFieldInfo::isCharSequence)
* 例3: 只要 java 字段没有填充策略的 -> select(i -> i.getFieldFill() == FieldFill.DEFAULT)
* 例4: 要全部字段 -> select(i -> true)
* 例5: 只要主键字段 -> select(i -> false)
* 例1: 只要 java 字段名以 "test" 开头的 -> select(i -> i.getProperty().startsWith("test")) <br/>
* 例2: 只要 java 字段属性是 CharSequence 类型的 -> select(TableFieldInfo::isCharSequence) <br/>
* 例3: 只要 java 字段没有填充策略的 -> select(i -> i.getFieldFill() == FieldFill.DEFAULT) <br/>
* 例4: 要全部字段 -> select(i -> true) <br/>
* 例5: 只要主键字段 -> select(i -> false) <br/>
* </p>
*
* @param predicate 过滤方式
Expand All @@ -113,7 +130,7 @@ public String getSqlSelect() {

/**
* <p>
* 用于生成嵌套 sql
* 用于生成嵌套 sql <br/>
* 故 sqlSelect 不向下传递
* </p>
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,28 +15,34 @@
*/
package com.baomidou.mybatisplus.core.conditions.query;

import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;

import java.io.Serializable;
import java.util.function.Predicate;

import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;

/**
* @author miemie
* @since 2018-12-12
*/
public interface Query<Children, T, R> extends Serializable {

/**
* <p>
* 设置查询字段
* </p>
*
* @param columns 字段数组
* @return children
*/
Children select(R... columns);

/**
* <p>
* ignore
* <li> 注意只有内部有 entity 才能使用该方法 </li>
* </p>
* <p>
* 注意只有内部有 entity 才能使用该方法
* </p>
*/
Children select(Predicate<TableFieldInfo> predicate);

Expand All @@ -45,11 +51,11 @@ public interface Query<Children, T, R> extends Serializable {
* 过滤查询的字段信息(主键除外!)
* </p>
* <p>
* 例1: 只要 java 字段名以 "test" 开头的 -> select(i -> i.getProperty().startsWith("test"))
* 例2: 只要 java 字段属性是 CharSequence 类型的 -> select(TableFieldInfo::isCharSequence)
* 例3: 只要 java 字段没有填充策略的 -> select(i -> i.getFieldFill() == FieldFill.DEFAULT)
* 例4: 要全部字段 -> select(i -> true)
* 例5: 只要主键字段 -> select(i -> false)
* 例1: 只要 java 字段名以 "test" 开头的 -> select(i -> i.getProperty().startsWith("test")) <br/>
* 例2: 只要 java 字段属性是 CharSequence 类型的 -> select(TableFieldInfo::isCharSequence) <br/>
* 例3: 只要 java 字段没有填充策略的 -> select(i -> i.getFieldFill() == FieldFill.DEFAULT) <br/>
* 例4: 要全部字段 -> select(i -> true) <br/>
* 例5: 只要主键字段 -> select(i -> false) <br/>
* </p>
*
* @param predicate 过滤方式
Expand All @@ -58,7 +64,9 @@ public interface Query<Children, T, R> extends Serializable {
Children select(Class<T> entityClass, Predicate<TableFieldInfo> predicate);

/**
* <p>
* 查询条件 SQL 片段
* </p>
*/
String getSqlSelect();
}
Loading

0 comments on commit 0851c2f

Please sign in to comment.