optimize QueryCondition.getPrevEffectiveCondition

This commit is contained in:
开源海哥 2023-06-11 10:03:02 +08:00
parent 945cee12e3
commit 6e08986d39
2 changed files with 6 additions and 9 deletions

View File

@ -83,15 +83,15 @@ public class Brackets extends QueryCondition {
if (checkEffective()) {
String childSql = childCondition.toSql(queryTables, dialect);
if (StringUtil.isNotBlank(childSql)) {
QueryCondition prevCondition = getPrevEffectiveCondition();
if (prevCondition != null) {
childSql = prevCondition.connector + "(" + childSql + ")";
QueryCondition prevEffectiveCondition = getPrevEffectiveCondition();
if (prevEffectiveCondition != null) {
childSql = prevEffectiveCondition.connector + "(" + childSql + ")";
} else if (StringUtil.isNotBlank(sqlNext)) {
childSql = "(" + childSql + ")";
}
sql.append(childSql);
} else {
//all child conditions is not effective
//all child conditions are not effective
//fixed gitee #I6W89G
this.effective = false;
}

View File

@ -217,13 +217,10 @@ public class QueryCondition implements CloneSupport<QueryCondition> {
protected QueryCondition getPrevEffectiveCondition() {
if (prev != null && prev.checkEffective()) {
return prev;
} else if (prev != null) {
return prev.getPrevEffectiveCondition();
} else {
if (prev == null) {
return null;
}
return prev.checkEffective() ? prev : prev.getPrevEffectiveCondition();
}