diff --git a/mybatis-plus-join-annotation/src/main/java/com/github/yulichang/annotation/Table.java b/mybatis-plus-join-annotation/src/main/java/com/github/yulichang/annotation/Table.java
index a29c5a2..8e7b5a2 100644
--- a/mybatis-plus-join-annotation/src/main/java/com/github/yulichang/annotation/Table.java
+++ b/mybatis-plus-join-annotation/src/main/java/com/github/yulichang/annotation/Table.java
@@ -21,8 +21,9 @@ import java.lang.annotation.Target;
* 支持Ognl语法字段说明
* Ognl上下文
*
- * - classInfo {@link com.github.yulichang.apt.OgnlRoot.ClassInfo}
- * - stringHelper {@link com.github.yulichang.apt.OgnlRoot.StringHelper}
+ * - className 类名
+ * - classPackage 包名
+ * - util 工具类 stringHelper {@link com.github.yulichang.apt.OgnlRoot.StringHelper}
*
* 指定开头 Ognl# 这不是ognl语法,这是MPJ规定的 用于区分 ognl还是String.format
*
@@ -55,7 +56,7 @@ public @interface Table {
*
* 支持Ognl 默认使用String.format()
*/
- String packageName() default "%s.apt";
+ String classPackage() default "%s.apt";
/**
* 是否在Tables中生成对应的类字段
@@ -67,13 +68,13 @@ public @interface Table {
*
* 支持Ognl 默认使用String.format()
*/
- String tablesPackageName() default "%s.tables";
+ String tablesClassPackage() default "%s.tables";
/**
* Tables中的字段名 默认大写的类名
*
* 支持Ognl 默认使用String.format()
*/
- String tablesName() default "%S";
+ String tablesClassName() default "%S";
}
\ No newline at end of file
diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/apt/Column.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/apt/Column.java
index 4043182..4eddea2 100644
--- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/apt/Column.java
+++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/apt/Column.java
@@ -1,20 +1,31 @@
package com.github.yulichang.apt;
-import lombok.AllArgsConstructor;
-import lombok.Data;
+import lombok.Getter;
import java.io.Serializable;
import java.util.function.Supplier;
-@Data
-@AllArgsConstructor
+/**
+ * @author yulichang
+ * @since 1.5.0
+ */
+@Getter
public class Column implements Serializable {
- private BaseColumn> root;
+ private final BaseColumn> root;
- private Class> clazz;
+ private final String property;
- private String property;
+ public Column(BaseColumn> root, String property) {
+ this.root = root;
+ this.property = property;
+ }
- private Supplier alias;
+ public Class> getClazz() {
+ return root.getColumnClass();
+ }
+
+ public Supplier getAlias() {
+ return root::getAlias;
+ }
}
\ No newline at end of file
diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/apt/OgnlRoot.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/apt/OgnlRoot.java
index 1560e91..4574998 100644
--- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/apt/OgnlRoot.java
+++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/apt/OgnlRoot.java
@@ -13,31 +13,15 @@ import java.util.Objects;
@Getter
public class OgnlRoot {
- private final ClassInfo classInfo;
+ private final String className;
- private final StringHelper stringHelper;
+ private final String classPackage;
- public OgnlRoot(String className, String packageName) {
- this.classInfo = new ClassInfo(className, packageName);
- this.stringHelper = new StringHelper();
- }
+ private final StringHelper util = new StringHelper();
- @Getter
- public static class ClassInfo {
- /**
- * 类名
- */
- public final String className;
- /**
- * 包名
- */
- public final String packageName;
-
-
- public ClassInfo(String className, String packageName) {
- this.className = className;
- this.packageName = packageName;
- }
+ public OgnlRoot(String className, String classPackage) {
+ this.className = className;
+ this.classPackage = classPackage;
}
@SuppressWarnings("unused")
diff --git a/mybatis-plus-join-test/test-join/src/test/java/com/github/yulichang/test/join/apt/AptWrapperTest.java b/mybatis-plus-join-test/test-join/src/test/java/com/github/yulichang/test/join/apt/AptWrapperTest.java
index dff5e0c..2e67929 100644
--- a/mybatis-plus-join-test/test-join/src/test/java/com/github/yulichang/test/join/apt/AptWrapperTest.java
+++ b/mybatis-plus-join-test/test-join/src/test/java/com/github/yulichang/test/join/apt/AptWrapperTest.java
@@ -29,6 +29,8 @@ import java.util.List;
import java.util.Map;
import java.util.Objects;
+import static com.github.yulichang.test.join.entity.tables.Tables.*;
+
/**
* 连表测试类
*
@@ -64,7 +66,7 @@ class AptWrapperTest {
void testSelectSort() {
ThreadLocalUtils.set("SELECT t.id, t.user_id, t.tenant_id FROM user_tenant t WHERE t.tenant_id = 1");
- UserTenantDOCol ut = new UserTenantDOCol();
+ UserTenantDOCol ut = USERTENANTDO;
AptQueryWrapper lambda = JoinWrappers.apt(ut)
.selectAsClass(ut, UserTenantDTO.class);
@@ -81,7 +83,7 @@ class AptWrapperTest {
@Test
void testSimple() {
- UserTenantDOCol ut = new UserTenantDOCol();
+ UserTenantDOCol ut = USERTENANTDO;
AptQueryWrapper lambda = JoinWrappers.apt(ut);
lambda.selectAs(ut.idea, UserTenantDO::getIdea);
List list = userTenantMapper.selectList(lambda);
@@ -124,9 +126,9 @@ class AptWrapperTest {
" AND (t.id <= ?)\n" +
"ORDER BY t.id DESC");
- UserDOCol u = new UserDOCol();
- AddressDOCol addr = new AddressDOCol();
- AreaDOCol ar = new AreaDOCol();
+ UserDOCol u = USERDO;
+ AddressDOCol addr = ADDRESSDO;
+ AreaDOCol ar = AREADO;
AptQueryWrapper wrapper = new AptQueryWrapper<>(u)
.selectAll()
@@ -170,9 +172,9 @@ class AptWrapperTest {
" AND (t.id <= ?)\n" +
"ORDER BY t.id DESC");
- UserDOCol u = new UserDOCol();
- AddressDOCol addr = new AddressDOCol();
- AreaDOCol ar = new AreaDOCol();
+ UserDOCol u = USERDO;
+ AddressDOCol addr = ADDRESSDO;
+ AreaDOCol ar = AREADO;
AptQueryWrapper wrapper = new AptQueryWrapper<>(u)
.selectAll()
@@ -222,9 +224,9 @@ class AptWrapperTest {
" AND t2.del = false\n" +
"ORDER BY t.id DESC");
- UserDOCol u = new UserDOCol();
- AddressDOCol addr = new AddressDOCol();
- AreaDOCol ar = new AreaDOCol();
+ UserDOCol u = USERDO;
+ AddressDOCol addr = ADDRESSDO;
+ AreaDOCol ar = AREADO;
AptQueryWrapper wrapper = new AptQueryWrapper<>(u)
.selectAll()
@@ -252,9 +254,9 @@ class AptWrapperTest {
" AND t1.del = false\n" +
" AND t2.del = false");
- UserDOCol u = new UserDOCol();
- AddressDOCol addr = new AddressDOCol();
- AreaDOCol ar = new AreaDOCol();
+ UserDOCol u = USERDO;
+ AddressDOCol addr = ADDRESSDO;
+ AreaDOCol ar = AREADO;
//基本数据类型 和 String
AptQueryWrapper wrapper = new AptQueryWrapper<>(u)
@@ -306,9 +308,9 @@ class AptWrapperTest {
" AND (t.id <= ?)\n" +
"ORDER BY t.id ASC, t.`name` ASC");
- UserDOCol u = new UserDOCol();
- AddressDOCol addr = new AddressDOCol();
- AreaDOCol ar = new AreaDOCol();
+ UserDOCol u = USERDO;
+ AddressDOCol addr = ADDRESSDO;
+ AreaDOCol ar = AREADO;
UserDO userDO = new UserDO();
userDO.setId(1);
@@ -438,7 +440,7 @@ class AptWrapperTest {
"WHERE t.del = false\n" +
" AND (t.id > ?)");
- UserDOCol u = new UserDOCol();
+ UserDOCol u = USERDO;
UserDOCol ua = new UserDOCol();
//自连接
diff --git a/plugin/mybatis-plus-join-processor/src/main/java/com/github/yulichang/processor/EntityProcessor.java b/plugin/mybatis-plus-join-processor/src/main/java/com/github/yulichang/processor/EntityProcessor.java
index 2544685..eaed2b7 100644
--- a/plugin/mybatis-plus-join-processor/src/main/java/com/github/yulichang/processor/EntityProcessor.java
+++ b/plugin/mybatis-plus-join-processor/src/main/java/com/github/yulichang/processor/EntityProcessor.java
@@ -115,7 +115,7 @@ public class EntityProcessor extends AbstractProcessor {
tableInfo.setFields(fieldInfos);
StringBuilderHelper content = new StringBuilderHelper()
- .addPackage(tableInfo.getTagPackage())
+ .addPackage(tableInfo.getTagClassPackage())
.newLine()
.addImport(BaseColumn.class.getName())
.addImport(Column.class.getName())
@@ -124,12 +124,12 @@ public class EntityProcessor extends AbstractProcessor {
.addClass(tableInfo.getClassComment(), tableInfo.getTagClassName(),
BaseColumn.class.getSimpleName() + "<" + tableInfo.getSimpleClassName() + ">",
c -> c
- .addDefaultField(tableInfo.getSimpleClassName())
+ .addDefaultField()
.addConstructor(tableInfo)
.addFields(tableInfo)
.addMethod(tableInfo)
);
- writerFile(tableInfo.getTagPackage() + "." + tableInfo.getTagClassName(), content.getContent());
+ writerFile(tableInfo.getTagClassPackage() + "." + tableInfo.getTagClassName(), content.getContent());
return tableInfo;
}
@@ -142,7 +142,7 @@ public class EntityProcessor extends AbstractProcessor {
content.addPackage(tagPackage);
content.newLine();
// import
- tableInfos.forEach(tableInfo -> content.addImport(tableInfo.getTagPackage() + "." + tableInfo.getTagClassName()));
+ tableInfos.forEach(tableInfo -> content.addImport(tableInfo.getTagClassPackage() + "." + tableInfo.getTagClassName()));
content.newLine();
// class
String tables = "Tables";
@@ -220,8 +220,8 @@ public class EntityProcessor extends AbstractProcessor {
public StringBuilderHelper addFields(TableInfo tableInfo) {
tableInfo.getFields().forEach(fieldInfo -> {
addComment("\t", fieldInfo.getComment());
- sb.append(String.format("\tpublic final Column %s = new Column(this, %s.class, \"%s\", () -> this._alias_q2Gv$);\n",
- fieldInfo.getProperty(), tableInfo.getSimpleClassName(), fieldInfo.getProperty()));
+ sb.append(String.format("\tpublic final Column %s = new Column(this, \"%s\");\n",
+ fieldInfo.getProperty(), fieldInfo.getProperty()));
newLine();
});
return this;
@@ -239,9 +239,7 @@ public class EntityProcessor extends AbstractProcessor {
return this;
}
- public StringBuilderHelper addDefaultField(String simpleClassName) {
- newLine();
- sb.append("\tprivate static final Class<").append(simpleClassName).append("> _class_e76G$ = ").append(simpleClassName).append(".class;\n");
+ public StringBuilderHelper addDefaultField() {
newLine();
sb.append("\tprivate String _alias_q2Gv$;\n");
newLine();
@@ -251,7 +249,7 @@ public class EntityProcessor extends AbstractProcessor {
public StringBuilderHelper addMethod(TableInfo tableInfo) {
sb.append("\t@Override\n" +
"\tpublic Class<").append(tableInfo.getSimpleClassName()).append("> getColumnClass() {\n")
- .append("\t\treturn this._class_e76G$;\n")
+ .append("\t\treturn ").append(tableInfo.getSimpleClassName()).append(".class;\n")
.append("\t}\n");
newLine();
sb.append("\t@Override\n" +
diff --git a/plugin/mybatis-plus-join-processor/src/main/java/com/github/yulichang/processor/matedata/Conf.java b/plugin/mybatis-plus-join-processor/src/main/java/com/github/yulichang/processor/matedata/Conf.java
index da5adee..274ffaa 100644
--- a/plugin/mybatis-plus-join-processor/src/main/java/com/github/yulichang/processor/matedata/Conf.java
+++ b/plugin/mybatis-plus-join-processor/src/main/java/com/github/yulichang/processor/matedata/Conf.java
@@ -18,19 +18,19 @@ import java.util.function.Function;
public class Conf {
private String className = "%sCol";
- private String packageName = "%s.apt";
+ private String classPackage = "%s.apt";
private boolean genTables = true;
- private String tablasPackageName = "%s.tables";
- private String tablesName = "%S";
+ private String tablasClassPackage = "%s.tables";
+ private String tablesClassName = "%S";
private boolean initFlag = false;
private Conf(Conf conf) {
this.className = conf.className;
- this.packageName = conf.packageName;
+ this.classPackage = conf.classPackage;
this.genTables = conf.genTables;
- this.tablasPackageName = conf.tablasPackageName;
- this.tablesName = conf.tablesName;
+ this.tablasClassPackage = conf.tablasClassPackage;
+ this.tablesClassName = conf.tablesClassName;
this.initFlag = conf.initFlag;
}
@@ -69,10 +69,10 @@ public class Conf {
Properties properties = new Properties();
properties.load(Files.newInputStream(confFile.toPath()));
this.className = properties.getOrDefault("className", this.className).toString();
- this.packageName = properties.getOrDefault("packageName", this.packageName).toString();
+ this.classPackage = properties.getOrDefault("classPackage", this.classPackage).toString();
this.genTables = Boolean.parseBoolean(properties.getOrDefault("genTables", Boolean.toString(this.genTables)).toString());
- this.tablasPackageName = properties.getOrDefault("tablasPackageName", this.tablasPackageName).toString();
- this.tablesName = properties.getOrDefault("tablesName", this.tablesName).toString();
+ this.tablasClassPackage = properties.getOrDefault("tablasClassPackage", this.tablasClassPackage).toString();
+ this.tablesClassName = properties.getOrDefault("tablesClassName", this.tablesClassName).toString();
}
public static Conf getConf(Conf globalConf, Table table, Collection keys) {
@@ -92,12 +92,12 @@ public class Conf {
this.className = className;
}
- public String getPackageName() {
- return packageName;
+ public String getClassPackage() {
+ return classPackage;
}
- public void setPackageName(String packageName) {
- this.packageName = packageName;
+ public void setClassPackage(String classPackage) {
+ this.classPackage = classPackage;
}
public boolean isGenTables() {
@@ -108,28 +108,28 @@ public class Conf {
this.genTables = genTables;
}
- public String getTablasPackageName() {
- return tablasPackageName;
+ public String getTablasClassPackage() {
+ return tablasClassPackage;
}
- public void setTablasPackageName(String tablasPackageName) {
- this.tablasPackageName = tablasPackageName;
+ public void setTablasClassPackage(String tablasClassPackage) {
+ this.tablasClassPackage = tablasClassPackage;
}
- public String getTablesName() {
- return tablesName;
+ public String getTablesClassName() {
+ return tablesClassName;
}
- public void setTablesName(String tablesName) {
- this.tablesName = tablesName;
+ public void setTablesClassName(String tablesClassName) {
+ this.tablesClassName = tablesClassName;
}
public enum ConfItem {
className("value", Table::value, (c, v) -> c.setClassName(v.toString())),
- packageName("packageName", Table::packageName, (c, v) -> c.setPackageName(v.toString())),
+ packageName("classPackage", Table::classPackage, (c, v) -> c.setClassPackage(v.toString())),
genTables("genTables", Table::genTables, (c, v) -> c.setGenTables((boolean) v)),
- tablasPackageName("tablasPackageName", Table::tablesPackageName, (c, v) -> c.setTablasPackageName(v.toString())),
- tablesName("tablesName", Table::tablesName, (c, v) -> c.setTablesName(v.toString()));
+ tablasPackageName("tablesClassPackage", Table::tablesClassPackage, (c, v) -> c.setTablasClassPackage(v.toString())),
+ tablesName("tablesClassName", Table::tablesClassName, (c, v) -> c.setTablesClassName(v.toString()));
private final String action;
@@ -153,10 +153,11 @@ public class Conf {
public String toString() {
return "Conf{" +
"className='" + className + '\'' +
- ", packageName='" + packageName + '\'' +
+ ", classPackage='" + classPackage + '\'' +
", genTables=" + genTables +
- ", tablasPackageName='" + tablasPackageName + '\'' +
- ", tablesName='" + tablesName + '\'' +
+ ", tablasClassPackage='" + tablasClassPackage + '\'' +
+ ", tablesClassName='" + tablesClassName + '\'' +
+ ", initFlag=" + initFlag +
'}';
}
}
diff --git a/plugin/mybatis-plus-join-processor/src/main/java/com/github/yulichang/processor/matedata/TableInfo.java b/plugin/mybatis-plus-join-processor/src/main/java/com/github/yulichang/processor/matedata/TableInfo.java
index 1232879..abcd636 100644
--- a/plugin/mybatis-plus-join-processor/src/main/java/com/github/yulichang/processor/matedata/TableInfo.java
+++ b/plugin/mybatis-plus-join-processor/src/main/java/com/github/yulichang/processor/matedata/TableInfo.java
@@ -54,9 +54,9 @@ public class TableInfo {
/**
* 生成类的路径
*/
- public String getTagPackage() {
+ public String getTagClassPackage() {
if (tagPackageName == null) {
- tagPackageName = parse(conf.getPackageName(), this.classPackage);
+ tagPackageName = parse(conf.getClassPackage(), this.classPackage);
}
return tagPackageName;
}
@@ -66,7 +66,7 @@ public class TableInfo {
*/
public String getTagTablesName() {
if (tagTablesName == null) {
- tagTablesName = parse(conf.getTablesName(), this.simpleClassName);
+ tagTablesName = parse(conf.getTablesClassName(), this.simpleClassName);
}
return tagTablesName;
}
@@ -76,7 +76,7 @@ public class TableInfo {
*/
public String getTagTablesPackageName() {
if (tagTablesPackageName == null) {
- tagTablesPackageName = parse(conf.getTablasPackageName(), this.classPackage);
+ tagTablesPackageName = parse(conf.getTablasClassPackage(), this.classPackage);
}
return tagTablesPackageName;
}