code
This commit is contained in:
parent
e1b68f53cb
commit
2fae817229
@ -90,6 +90,7 @@ public abstract class SqlUtils implements Constants {
|
|||||||
return sql;
|
return sql;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("all")
|
||||||
public static String getSelectBody(String tableName, String alisa, String asAlisa, String escapeSymbol) {
|
public static String getSelectBody(String tableName, String alisa, String asAlisa, String escapeSymbol) {
|
||||||
TableInfo tableInfo = TableInfoHelper.getTableInfo(tableName);
|
TableInfo tableInfo = TableInfoHelper.getTableInfo(tableName);
|
||||||
Assert.notNull(tableInfo, "can not find TableInfo Cache by \"%s\"", tableName);
|
Assert.notNull(tableInfo, "can not find TableInfo Cache by \"%s\"", tableName);
|
||||||
@ -108,14 +109,17 @@ public abstract class SqlUtils implements Constants {
|
|||||||
final String sa = alisa.concat(DOT);
|
final String sa = alisa.concat(DOT);
|
||||||
if (asA) {
|
if (asA) {
|
||||||
int as = body.indexOf(AS);
|
int as = body.indexOf(AS);
|
||||||
|
String column;
|
||||||
|
String property;
|
||||||
if (as < 0) {
|
if (as < 0) {
|
||||||
sb.append(sa).append(body).append(AS).append(escapeColumn(asAlisa.concat(DOT).concat(body), escapeSymbol));
|
column = body;
|
||||||
|
property = StringUtils.getTargetColumn(body);
|
||||||
} else {
|
} else {
|
||||||
String column = body.substring(0, as);
|
column = body.substring(0, as);
|
||||||
String property = body.substring(as + 4);
|
property = body.substring(as + 4);
|
||||||
property = StringUtils.getTargetColumn(property);
|
property = StringUtils.getTargetColumn(property);
|
||||||
sb.append(sa).append(column).append(AS).append(escapeColumn(asAlisa.concat(DOT).concat(property), escapeSymbol));
|
|
||||||
}
|
}
|
||||||
|
sb.append(sa).append(column).append(AS).append(escapeColumn(asAlisa.concat(DOT).concat(property), escapeSymbol));
|
||||||
} else {
|
} else {
|
||||||
sb.append(sa).append(body);
|
sb.append(sa).append(body);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.baomidou.mybatisplus.test.replaceplaceholder;
|
package com.baomidou.mybatisplus.test.replaceplaceholder;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
@ -14,5 +15,15 @@ public class Entity implements Serializable {
|
|||||||
|
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
|
@TableField("`name`")
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
private EntitySub es;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public static class EntitySub {
|
||||||
|
private Long id;
|
||||||
|
private String name;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,6 +14,6 @@ public interface EntityMapper extends BaseMapper<Entity> {
|
|||||||
@Select("select {@entity} from entity")
|
@Select("select {@entity} from entity")
|
||||||
List<Entity> selectAll();
|
List<Entity> selectAll();
|
||||||
|
|
||||||
@Select("select {@entity:e} from entity e")
|
@Select("select {@entity:e:es} from entity e")
|
||||||
List<Entity> selectAll2();
|
List<Entity> selectAll2();
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,19 @@
|
|||||||
|
package com.baomidou.mybatisplus.test.replaceplaceholder;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import org.apache.ibatis.annotations.Select;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author miemie
|
||||||
|
* @since 2020-06-23
|
||||||
|
*/
|
||||||
|
public interface EntitySubMapper extends BaseMapper<Entity> {
|
||||||
|
|
||||||
|
@Select("select {@entity} from entity")
|
||||||
|
List<Entity> selectAll();
|
||||||
|
|
||||||
|
@Select("select {@entity:e} from entity e")
|
||||||
|
List<Entity> selectAll2();
|
||||||
|
}
|
@ -10,6 +10,8 @@ import java.util.Arrays;
|
|||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author miemie
|
* @author miemie
|
||||||
* @since 2020-06-23
|
* @since 2020-06-23
|
||||||
@ -19,15 +21,17 @@ public class ReplacePlaceholderTest extends BaseDbTest<EntityMapper> {
|
|||||||
@Test
|
@Test
|
||||||
void replace() {
|
void replace() {
|
||||||
doTest(i -> {
|
doTest(i -> {
|
||||||
i.selectAll();
|
System.out.println(i.selectAll());
|
||||||
i.selectAll2();
|
List<Entity> list = i.selectAll2();
|
||||||
|
System.out.println(list);
|
||||||
|
assertThat(list.getFirst().getEs().getName()).isNotBlank();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected List<Interceptor> interceptors() {
|
protected List<Interceptor> interceptors() {
|
||||||
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
|
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
|
||||||
interceptor.addInnerInterceptor(new ReplacePlaceholderInnerInterceptor());
|
interceptor.addInnerInterceptor(new ReplacePlaceholderInnerInterceptor("\""));
|
||||||
return Collections.singletonList(interceptor);
|
return Collections.singletonList(interceptor);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -41,14 +45,25 @@ public class ReplacePlaceholderTest extends BaseDbTest<EntityMapper> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String tableDataSql() {
|
protected String tableDataSql() {
|
||||||
return "insert into entity(id,name) values(1,'1'),(2,'2');";
|
return "insert into entity(id,name) values(1,'1'),(2,'2');" +
|
||||||
|
"insert into entity_sub(id,name) values(1,'1'),(2,'2');";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected List<String> tableSql() {
|
protected List<String> tableSql() {
|
||||||
return Arrays.asList("drop table if exists entity", "CREATE TABLE IF NOT EXISTS entity (" +
|
return Arrays.asList("drop table if exists entity","drop table if exists entity_sub",
|
||||||
|
"CREATE TABLE IF NOT EXISTS entity (" +
|
||||||
"id BIGINT NOT NULL," +
|
"id BIGINT NOT NULL," +
|
||||||
"name VARCHAR(30) NULL DEFAULT NULL," +
|
"name VARCHAR(30) NULL DEFAULT NULL," +
|
||||||
"PRIMARY KEY (id))");
|
"PRIMARY KEY (id))",
|
||||||
|
"CREATE TABLE IF NOT EXISTS entity_sub (" +
|
||||||
|
"id BIGINT NOT NULL," +
|
||||||
|
"name VARCHAR(30) NULL DEFAULT NULL," +
|
||||||
|
"PRIMARY KEY (id))");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected List<Class<?>> otherMapper() {
|
||||||
|
return List.of(EntitySubMapper.class);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user