mirror of
https://gitee.com/mybatis-flex/mybatis-flex.git
synced 2025-12-07 00:58:24 +08:00
!363 增加QueryColumnBehavior内置的规则,方便使用
Merge pull request !363 from 简单风/flex-feature-queryColumnBehavior
This commit is contained in:
commit
75cb543b2a
@ -1110,13 +1110,18 @@ QueryWrapper query2 = QueryWrapper.create()
|
|||||||
## QueryColumnBehavior <Badge type="tip" text="^ v1.5.7" />
|
## QueryColumnBehavior <Badge type="tip" text="^ v1.5.7" />
|
||||||
|
|
||||||
在以上的内容中,我们知道 MyBatis-Flex 会自动忽略 `null` 值的条件,但是在实际开发中,有的开发者希望除了自动忽略 `null`
|
在以上的内容中,我们知道 MyBatis-Flex 会自动忽略 `null` 值的条件,但是在实际开发中,有的开发者希望除了自动忽略 `null`
|
||||||
值以外,还可以自动忽略其他值,比如 `空字符串` 等。
|
值以外,还可以自动忽略其他值,内置的规则有`null`(默认) 、`空字符串`、`空白字符串` ,当然也可以自定义。
|
||||||
|
|
||||||
|
|
||||||
此时,我们可以通过配置 QueryColumnBehavior 来自定义忽略的值。如下的代码会自动忽略 `null` 和 `空字符串`:
|
此时,我们可以通过配置 QueryColumnBehavior 来自定义忽略的值。
|
||||||
|
|
||||||
```java
|
```java
|
||||||
QueryColumnBehavior.setIgnoreFunction(o -> o == null || "".equals(o));
|
// 使用内置规则自动忽略 null 和 空字符串
|
||||||
|
QueryColumnBehavior.setIgnoreFunction(QueryColumnBehavior.IGNORE_EMPTY);
|
||||||
|
// 使用内置规则自动忽略 null 和 空白字符串
|
||||||
|
QueryColumnBehavior.setIgnoreFunction(QueryColumnBehavior.IGNORE_BLANK);
|
||||||
|
// 其他自定义规则
|
||||||
|
QueryColumnBehavior.setIgnoreFunction(o -> {...});
|
||||||
```
|
```
|
||||||
|
|
||||||
另外,在某些场景下,开发者希望在构建 QueryWrapper 中,如果传入的值是集合或数组,则使用 `in` 逻辑,否则使用 `=`(等于)
|
另外,在某些场景下,开发者希望在构建 QueryWrapper 中,如果传入的值是集合或数组,则使用 `in` 逻辑,否则使用 `=`(等于)
|
||||||
|
|||||||
@ -29,10 +29,17 @@ public class QueryColumnBehavior {
|
|||||||
private QueryColumnBehavior() {
|
private QueryColumnBehavior() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 内置的可选的忽略规则
|
||||||
|
*/
|
||||||
|
public static final Predicate<Object> IGNORE_NULL = Objects::isNull;
|
||||||
|
public static final Predicate<Object> IGNORE_EMPTY = o -> o == null || "".equals(o);
|
||||||
|
public static final Predicate<Object> IGNORE_BLANK = o -> o == null || "".equals(o.toString().trim());
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 自定义全局的自动忽略参数的方法。
|
* 自定义全局的自动忽略参数的方法。
|
||||||
*/
|
*/
|
||||||
private static Predicate<Object> ignoreFunction = Objects::isNull;
|
private static Predicate<Object> ignoreFunction = IGNORE_NULL;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 当 {@code IN(...)} 条件只有 1 个参数时,是否自动把的内容转换为相等。
|
* 当 {@code IN(...)} 条件只有 1 个参数时,是否自动把的内容转换为相等。
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user