diff --git a/src/main/java/com/github/yulichang/wrapper/MPJLambdaWrapper.java b/src/main/java/com/github/yulichang/wrapper/MPJLambdaWrapper.java index 418b7ff..8c5533f 100644 --- a/src/main/java/com/github/yulichang/wrapper/MPJLambdaWrapper.java +++ b/src/main/java/com/github/yulichang/wrapper/MPJLambdaWrapper.java @@ -113,11 +113,6 @@ public class MPJLambdaWrapper extends MPJAbstractLambdaWrapper MPJLambdaWrapper select(SFunction... columns) { @@ -166,17 +161,7 @@ public class MPJLambdaWrapper extends MPJAbstractLambdaWrapper - * 用法: selectIgnore(UserDO::getId,UserDO::getSex) - * 注意: 一个selectIgnore只支持一个对象 如果要忽略多个实体的字段,请调用多次 - *

- * .selectIgnore(UserDO::getId,UserDO::getSex) - * .selectIgnore(UserAddressDO::getArea,UserAddressDO::getCity) - * - * @since 1.1.3 - */ + @Override @SafeVarargs public final MPJLambdaWrapper selectIgnore(SFunction... columns) { if (ArrayUtils.isNotEmpty(columns)) { @@ -273,14 +258,31 @@ public class MPJLambdaWrapper extends MPJAbstractLambdaWrapper clazz; + /** + * 数据库字段名 + */ private String columnName; + /** + * 字段别名 + */ private String alias; + /** + * 字段函数 + */ private BaseFuncEnum funcEnum; + /** + * 自定义函数填充参数 + */ + private List> funcArgs; + private SelectColumn(Class clazz, String columnName, String alias, BaseFuncEnum funcEnum) { this.clazz = clazz; this.columnName = columnName; @@ -289,11 +291,11 @@ public class MPJLambdaWrapper extends MPJAbstractLambdaWrapper clazz, String columnName) { - return of(clazz, columnName, null, null); + return new SelectColumn(clazz, columnName, null, null); } public static SelectColumn of(Class clazz, String columnName, String alias) { - return of(clazz, columnName, alias, null); + return new SelectColumn(clazz, columnName, alias, null); } public static SelectColumn of(Class clazz, String columnName, String alias, BaseFuncEnum funcEnum) { diff --git a/src/main/java/com/github/yulichang/wrapper/interfaces/Query.java b/src/main/java/com/github/yulichang/wrapper/interfaces/Query.java index a099f7b..a835a42 100644 --- a/src/main/java/com/github/yulichang/wrapper/interfaces/Query.java +++ b/src/main/java/com/github/yulichang/wrapper/interfaces/Query.java @@ -39,8 +39,11 @@ public interface Query extends Serializable { */ Children select(Class entityClass, Predicate predicate); - default Children selectAs(SFunction columns, SFunction alias) { - return selectAs(columns, LambdaUtils.getName(alias)); + /** + * ignore + */ + default Children selectAs(SFunction column, SFunction alias) { + return selectAs(column, LambdaUtils.getName(alias)); } /** @@ -48,6 +51,31 @@ public interface Query extends Serializable { */ Children selectAs(SFunction column, String alias); + /** + * ignore + */ + Children selectFunc(BaseFuncEnum funcEnum, SFunction column, String alias); + + /** + * ignore + */ + default Children selectFunc(BaseFuncEnum funcEnum, SFunction column) { + return selectFunc(funcEnum, column, column); + } + + /** + * ignore + */ + default Children selectFunc(BaseFuncEnum funcEnum, SFunction column, SFunction alias) { + return selectFunc(funcEnum, column, LambdaUtils.getName(alias)); + } + + /** + * ignore + */ + default Children selectFunc(BaseFuncEnum funcEnum, Object column, SFunction alias) { + return selectFunc(funcEnum, column, LambdaUtils.getName(alias)); + } /** * 聚合函数查询 @@ -56,23 +84,27 @@ public interface Query extends Serializable { * @param column 函数作用的字段 * @param alias 别名 */ - Children selectFunc(BaseFuncEnum funcEnum, SFunction column, String alias); - - default Children selectFunc(BaseFuncEnum funcEnum, SFunction column) { - return selectFunc(funcEnum, column, column); - } - - - default Children selectFunc(BaseFuncEnum funcEnum, SFunction column, SFunction alias) { - return selectFunc(funcEnum, column, LambdaUtils.getName(alias)); - } - - default Children selectFunc(BaseFuncEnum funcEnum, Object column, SFunction alias) { - return selectFunc(funcEnum, column, LambdaUtils.getName(alias)); - } - Children selectFunc(BaseFuncEnum funcEnum, Object column, String alias); + /** + * 忽略查询字段 + *

+ * 用法: selectIgnore(UserDO::getId,UserDO::getSex) + * 注意: 一个selectIgnore只支持一个对象 如果要忽略多个实体的字段,请调用多次 + *

+ * .selectIgnore(UserDO::getId,UserDO::getSex) + * .selectIgnore(UserAddressDO::getArea,UserAddressDO::getCity) + * + * @since 1.1.3 + */ + @SuppressWarnings("unchecked") + Children selectIgnore(SFunction... columns); + + /** + * 查询实体类全部字段 + */ + Children selectAll(Class clazz); + /** * select sql 片段 */