mybatisFlex自定义方言解析器测试
This commit is contained in:
parent
dadaa401c2
commit
a8886b3153
|
|
@ -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.TableInfoFactory;
|
||||
import com.mybatisflex.core.util.LambdaGetter;
|
||||
import com.mybatisflex.core.util.LambdaUtil;
|
||||
import com.mybatisflex.core.util.MapUtil;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.lang.invoke.SerializedLambda;
|
||||
|
|
@ -108,8 +106,6 @@ public class JoinQueryWrapper extends QueryWrapper {
|
|||
return and(consumer, true);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public QueryWrapper and(QueryCondition queryCondition) {
|
||||
return addWhereQueryCondition(queryCondition, SqlConnector.AND);
|
||||
|
|
|
|||
Loading…
Reference in New Issue