mybatisFlex自定义方言解析器测试
This commit is contained in:
@@ -0,0 +1,45 @@
|
|||||||
|
package com.czg.config;
|
||||||
|
|
||||||
|
import com.mybatisflex.core.dialect.impl.CommonsDialectImpl;
|
||||||
|
import com.mybatisflex.core.exception.FlexExceptions;
|
||||||
|
import com.mybatisflex.core.exception.locale.LocalizedFormats;
|
||||||
|
import com.mybatisflex.core.query.CPI;
|
||||||
|
import com.mybatisflex.core.query.QueryCondition;
|
||||||
|
import com.mybatisflex.core.query.QueryTable;
|
||||||
|
import com.mybatisflex.core.query.QueryWrapper;
|
||||||
|
import com.mybatisflex.core.util.StringUtil;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static com.mybatisflex.core.constant.SqlConsts.ASTERISK;
|
||||||
|
import static com.mybatisflex.core.constant.SqlConsts.WHERE;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 自定义sql解析器 备用
|
||||||
|
*/
|
||||||
|
//@Component
|
||||||
|
public class MyCommonsDialectImpl extends CommonsDialectImpl {
|
||||||
|
@Override
|
||||||
|
public String wrap(String keyword) {
|
||||||
|
return ASTERISK.equals(keyword) ? keyword : keywordWrap.wrap(keyword);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void buildWhereSql(StringBuilder sqlBuilder, QueryWrapper queryWrapper, List<QueryTable> queryTables, boolean allowNoCondition) {
|
||||||
|
QueryCondition whereQueryCondition = CPI.getWhereQueryCondition(queryWrapper);
|
||||||
|
if (whereQueryCondition != null) {
|
||||||
|
String whereSql = whereQueryCondition.toSql(queryTables, this);
|
||||||
|
if (StringUtil.hasText(whereSql)) {
|
||||||
|
sqlBuilder.append(WHERE).append(whereSql);
|
||||||
|
} else if (!allowNoCondition) {
|
||||||
|
throw FlexExceptions.wrap(LocalizedFormats.UPDATE_OR_DELETE_NOT_ALLOW);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// whereQueryCondition == null
|
||||||
|
if (!allowNoCondition) {
|
||||||
|
throw FlexExceptions.wrap(LocalizedFormats.UPDATE_OR_DELETE_NOT_ALLOW);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
package com.czg.config;
|
||||||
|
|
||||||
|
import com.mybatisflex.core.dialect.DbType;
|
||||||
|
import com.mybatisflex.core.dialect.DialectFactory;
|
||||||
|
import jakarta.annotation.PostConstruct;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 自定义sql方言
|
||||||
|
*/
|
||||||
|
//@Component
|
||||||
|
public class MybatisFlexConfig {
|
||||||
|
// @Resource
|
||||||
|
private MyCommonsDialectImpl myCommonsDialect;
|
||||||
|
// @PostConstruct
|
||||||
|
public void init() {
|
||||||
|
DialectFactory.registerDialect(DbType.MYSQL, myCommonsDialect);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,8 +7,6 @@ import com.mybatisflex.core.query.*;
|
|||||||
import com.mybatisflex.core.table.TableInfo;
|
import com.mybatisflex.core.table.TableInfo;
|
||||||
import com.mybatisflex.core.table.TableInfoFactory;
|
import com.mybatisflex.core.table.TableInfoFactory;
|
||||||
import com.mybatisflex.core.util.LambdaGetter;
|
import com.mybatisflex.core.util.LambdaGetter;
|
||||||
import com.mybatisflex.core.util.LambdaUtil;
|
|
||||||
import com.mybatisflex.core.util.MapUtil;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.lang.invoke.SerializedLambda;
|
import java.lang.invoke.SerializedLambda;
|
||||||
@@ -108,8 +106,6 @@ public class JoinQueryWrapper extends QueryWrapper {
|
|||||||
return and(consumer, true);
|
return and(consumer, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public QueryWrapper and(QueryCondition queryCondition) {
|
public QueryWrapper and(QueryCondition queryCondition) {
|
||||||
return addWhereQueryCondition(queryCondition, SqlConnector.AND);
|
return addWhereQueryCondition(queryCondition, SqlConnector.AND);
|
||||||
|
|||||||
Reference in New Issue
Block a user