@@ -97,4 +97,11 @@ public abstract class AbstractLambdaWrapper<T, Children extends AbstractLambdaWr
columnMap = LambdaUtils.getColumnMap(entityClass);
}
+
+ @Override
+ public void clear() {
+ super.clear();
+ initColumnMap = false;
+ columnMap = null;
+ }
@@ -441,6 +441,18 @@ public abstract class AbstractWrapper<T, R, Children extends AbstractWrapper<T,
sqlFirst = SharedString.emptyString();
+ entity = null;
+ entityClass = null;
+ paramNameSeq.set(0);
+ paramNameValuePairs.clear();
+ expression.clear();
+ lastSql.clear();
+ sqlComment.clear();
+ sqlFirst.clear();
/**
* 对sql片段进行组装
*
@@ -47,4 +47,13 @@ public class SharedString implements Serializable {
public static SharedString emptyString() {
return new SharedString(StringPool.EMPTY);
+ /**
+ * 条件清空
+ *
+ * @since 3.3.1
+ */
+ stringValue = StringPool.EMPTY;
@@ -170,4 +170,11 @@ public abstract class Wrapper<T> implements ISqlSegment {
public String getTargetSql() {
return getSqlSegment().replaceAll("#\\{.+?}", "?");
+ abstract public void clear();
@@ -112,4 +112,12 @@ public abstract class AbstractISegmentList extends ArrayList<ISqlSegment> implem
* @return sqlSegment
*/
protected abstract String childrenSqlSegment();
+ lastValue = null;
+ sqlSegment = EMPTY;
+ cacheSqlSegment = true;
@@ -73,4 +73,16 @@ public class MergeSegments implements ISqlSegment {
return sqlSegment;
+ * 清理
+ normal.clear();
+ groupBy.clear();
+ having.clear();
+ orderBy.clear();
@@ -92,4 +92,11 @@ public class NormalSegmentList extends AbstractISegmentList {
final String str = this.stream().map(ISqlSegment::getSqlSegment).collect(Collectors.joining(SPACE));
return (LEFT_BRACKET + str + RIGHT_BRACKET);
+ flushLastValue = true;
+ executeNot = true;
@@ -235,5 +235,10 @@ public final class Wrappers {
protected EmptyWrapper<T> instance() {
throw new UnsupportedOperationException();
+ throw new UnsupportedOperationException();