mirror of
https://gitee.com/mybatis-flex/mybatis-flex.git
synced 2025-12-08 09:38:26 +08:00
close #I6VKDF
This commit is contained in:
parent
9067480138
commit
3536e0ac74
@ -27,6 +27,7 @@ import javax.annotation.processing.RoundEnvironment;
|
|||||||
import javax.lang.model.SourceVersion;
|
import javax.lang.model.SourceVersion;
|
||||||
import javax.lang.model.element.*;
|
import javax.lang.model.element.*;
|
||||||
import javax.lang.model.type.TypeMirror;
|
import javax.lang.model.type.TypeMirror;
|
||||||
|
import javax.lang.model.util.Types;
|
||||||
import javax.tools.Diagnostic;
|
import javax.tools.Diagnostic;
|
||||||
import javax.tools.JavaFileObject;
|
import javax.tools.JavaFileObject;
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
@ -100,14 +101,14 @@ public class QueryEntityProcessor extends AbstractProcessor {
|
|||||||
|
|
||||||
private Filer filer;
|
private Filer filer;
|
||||||
// private Elements elementUtils;
|
// private Elements elementUtils;
|
||||||
// private Types typeUtils;
|
private Types typeUtils;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized void init(ProcessingEnvironment processingEnvironment) {
|
public synchronized void init(ProcessingEnvironment processingEnvironment) {
|
||||||
super.init(processingEnvironment);
|
super.init(processingEnvironment);
|
||||||
this.filer = processingEnvironment.getFiler();
|
this.filer = processingEnvironment.getFiler();
|
||||||
// this.elementUtils = processingEnvironment.getElementUtils();
|
// this.elementUtils = processingEnvironment.getElementUtils();
|
||||||
// this.typeUtils = processingEnvironment.getTypeUtils();
|
this.typeUtils = processingEnvironment.getTypeUtils();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -155,6 +156,36 @@ public class QueryEntityProcessor extends AbstractProcessor {
|
|||||||
List<String> defaultColumns = new ArrayList<>();
|
List<String> defaultColumns = new ArrayList<>();
|
||||||
|
|
||||||
TypeElement classElement = (TypeElement) entityClassElement;
|
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()) {
|
for (Element fieldElement : classElement.getEnclosedElements()) {
|
||||||
|
|
||||||
//all fields
|
//all fields
|
||||||
@ -185,7 +216,6 @@ public class QueryEntityProcessor extends AbstractProcessor {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
String columnName = column != null && column.value().trim().length() > 0 ? column.value() : camelToUnderline(fieldElement.toString());
|
String columnName = column != null && column.value().trim().length() > 0 ? column.value() : camelToUnderline(fieldElement.toString());
|
||||||
propertyAndColumns.put(fieldElement.toString(), columnName);
|
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -9,7 +9,7 @@ import java.util.HashMap;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@Table(value = "tb_account",dataSource = "ds2",onSet = AccountOnSetListener.class)
|
@Table(value = "tb_account",dataSource = "ds2",onSet = AccountOnSetListener.class)
|
||||||
public class Account {
|
public class Account extends BaseAccount{
|
||||||
|
|
||||||
@Id(keyType = KeyType.Auto)
|
@Id(keyType = KeyType.Auto)
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|||||||
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user