From 33a303f3688295bb3d52c4c8f257956c41898037 Mon Sep 17 00:00:00 2001 From: Suomm <1474983351@qq.com> Date: Mon, 30 Oct 2023 19:05:49 +0800 Subject: [PATCH] =?UTF-8?q?doc:=20=E6=B7=BB=E5=8A=A0=20QueryWrapper=20?= =?UTF-8?q?=E5=85=8B=E9=9A=86=E6=96=87=E6=A1=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/zh/base/querywrapper.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/docs/zh/base/querywrapper.md b/docs/zh/base/querywrapper.md index 57d341f5..bfd613fe 100644 --- a/docs/zh/base/querywrapper.md +++ b/docs/zh/base/querywrapper.md @@ -1228,7 +1228,27 @@ byte[] bytes = fst.asByteArray(wrapper); QueryWrapper newWrapper = (QueryWrapper) fst.asObject(bytes); ``` +## QueryWrapper 克隆 +当我们想对 `QueryWrapper` 进行改造而不想影响之前构建出来的 `QueryWrapper` 时,可以使用 `clone()` 方法,克隆出来一份 +`QueryWrapper` 进行操作,示例: + +```java 6 +QueryWrapper queryWrapper = QueryWrapper.create() + .from(ACCOUNT) + .select(ACCOUNT.DEFAULT_COLUMNS) + .where(ACCOUNT.ID.eq(1)); + +QueryWrapper clone = queryWrapper.clone(); + +// 清空 SELECT 语句 +CPI.setSelectColumns(clone, null); +// 重新设置 SELECT 语句 +clone.select(ACCOUNT.ID, ACCOUNT.USER_NAME); + +System.out.println(queryWrapper.toSQL()); +System.out.println(clone.toSQL()); +``` ## 特别注意事项!!! 在 QueryWrapper 的条件构建中,如果传入 null 值,则自动忽略该条件,这有许多的好处,不需要额外的通过 `when()` 方法判断。但是也带来一些额外的知识记忆点,