close #I6VKDF

This commit is contained in:
开源海哥 2023-04-14 14:06:28 +08:00
parent 9067480138
commit 3536e0ac74
3 changed files with 67 additions and 42 deletions

View File

@ -27,6 +27,7 @@ import javax.annotation.processing.RoundEnvironment;
import javax.lang.model.SourceVersion;
import javax.lang.model.element.*;
import javax.lang.model.type.TypeMirror;
import javax.lang.model.util.Types;
import javax.tools.Diagnostic;
import javax.tools.JavaFileObject;
import java.io.*;
@ -100,14 +101,14 @@ public class QueryEntityProcessor extends AbstractProcessor {
private Filer filer;
// private Elements elementUtils;
// private Types typeUtils;
private Types typeUtils;
@Override
public synchronized void init(ProcessingEnvironment processingEnvironment) {
super.init(processingEnvironment);
this.filer = processingEnvironment.getFiler();
// this.elementUtils = processingEnvironment.getElementUtils();
// this.typeUtils = processingEnvironment.getTypeUtils();
this.typeUtils = processingEnvironment.getTypeUtils();
}
@Override
@ -155,6 +156,36 @@ public class QueryEntityProcessor extends AbstractProcessor {
List<String> defaultColumns = new ArrayList<>();
TypeElement classElement = (TypeElement) entityClassElement;
do {
fillPropertyAndColumns(propertyAndColumns, defaultColumns, classElement);
classElement = (TypeElement) typeUtils.asElement(classElement.getSuperclass());
}while (classElement!= null && "java.lang.Object".equals(classElement.toString()));
String entityClassName = entityClassElement.getSimpleName().toString();
tablesContent.append(buildTablesClass(entityClassName, tableName, propertyAndColumns, defaultColumns));
//是否开启 mapper 生成功能
if ("true".equalsIgnoreCase(mappersGenerateEnable)) {
String realMapperPackage = genMappersPackage == null || genMappersPackage.trim().length() == 0
? guessMapperPackage(entityClassElement.toString()) : genMappersPackage;
genMapperClass(genPath, realMapperPackage, entityClassElement.toString());
}
});
if (tablesContent.length() > 0) {
String realGenPackage = genTablesPackage == null || genTablesPackage.trim().length() == 0 ? guessPackage.toString() : genTablesPackage;
genTablesClass(genPath, realGenPackage, className, tablesContent.toString());
}
}
return false;
}
private void fillPropertyAndColumns(Map<String, String> propertyAndColumns, List<String> defaultColumns, TypeElement classElement) {
for (Element fieldElement : classElement.getEnclosedElements()) {
//all fields
@ -185,7 +216,6 @@ public class QueryEntityProcessor extends AbstractProcessor {
continue;
}
String columnName = column != null && column.value().trim().length() > 0 ? column.value() : camelToUnderline(fieldElement.toString());
propertyAndColumns.put(fieldElement.toString(), columnName);
@ -194,27 +224,6 @@ public class QueryEntityProcessor extends AbstractProcessor {
}
}
}
String entityClassName = entityClassElement.getSimpleName().toString();
tablesContent.append(buildTablesClass(entityClassName, tableName, propertyAndColumns, defaultColumns));
//是否开启 mapper 生成功能
if ("true".equalsIgnoreCase(mappersGenerateEnable)) {
String realMapperPackage = genMappersPackage == null || genMappersPackage.trim().length() == 0
? guessMapperPackage(entityClassElement.toString()) : genMappersPackage;
genMapperClass(genPath, realMapperPackage, entityClassElement.toString());
}
});
if (tablesContent.length() > 0) {
String realGenPackage = genTablesPackage == null || genTablesPackage.trim().length() == 0 ? guessPackage.toString() : genTablesPackage;
genTablesClass(genPath, realGenPackage, className, tablesContent.toString());
}
}
return false;
}

View File

@ -9,7 +9,7 @@ import java.util.HashMap;
import java.util.Map;
@Table(value = "tb_account",dataSource = "ds2",onSet = AccountOnSetListener.class)
public class Account {
public class Account extends BaseAccount{
@Id(keyType = KeyType.Auto)
private Long id;

View File

@ -0,0 +1,16 @@
package com.mybatisflex.test;
import java.util.Date;
public class BaseAccount {
private Date createTime;
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
}