findAndById
This commit is contained in:
@@ -31,7 +31,7 @@
|
|||||||
- `deleteAll({Example} example, boolean release)` - 删除(批量,支持物理删除)
|
- `deleteAll({Example} example, boolean release)` - 删除(批量,支持物理删除)
|
||||||
- `recoverById(long id)` - 从回收站恢复(单个)
|
- `recoverById(long id)` - 从回收站恢复(单个)
|
||||||
- `recoverAll({Example} example)` - 从回收站恢复(批量)
|
- `recoverAll({Example} example)` - 从回收站恢复(批量)
|
||||||
- `findNoWhereById(long id)` - 查找(不区分有效/回收站)
|
- `findAnyById(long id)` - 查找(不区分有效/回收站)
|
||||||
- `findValidById(long id)` - 查找有效记录(单个)
|
- `findValidById(long id)` - 查找有效记录(单个)
|
||||||
- `findTrashById(long id)` - 查找回收站记录(单个)
|
- `findTrashById(long id)` - 查找回收站记录(单个)
|
||||||
- `findValidOne({Example} example)` - 查找有效记录(单个,支持条件)
|
- `findValidOne({Example} example)` - 查找有效记录(单个,支持条件)
|
||||||
|
|||||||
Binary file not shown.
@@ -215,14 +215,14 @@ public class TapeRepositoryGeneratorPlugin extends PluginAdapter {
|
|||||||
recoverAllMethod.setAbstract(true);
|
recoverAllMethod.setAbstract(true);
|
||||||
repositoryInterface.addMethod(recoverAllMethod);
|
repositoryInterface.addMethod(recoverAllMethod);
|
||||||
|
|
||||||
// 7. findNoWhereById
|
// 7. findAnyById
|
||||||
Method findNoWhereByIdMethod = new Method("findNoWhereById");
|
Method findAnyByIdMethod = new Method("findAnyById");
|
||||||
findNoWhereByIdMethod.setVisibility(JavaVisibility.PUBLIC);
|
findAnyByIdMethod.setVisibility(JavaVisibility.PUBLIC);
|
||||||
findNoWhereByIdMethod.setReturnType(new FullyQualifiedJavaType(modelClassName));
|
findAnyByIdMethod.setReturnType(new FullyQualifiedJavaType(modelClassName));
|
||||||
findNoWhereByIdMethod.addParameter(new Parameter(new FullyQualifiedJavaType("long"), "id"));
|
findAnyByIdMethod.addParameter(new Parameter(new FullyQualifiedJavaType("long"), "id"));
|
||||||
findNoWhereByIdMethod.addException(new FullyQualifiedJavaType("Throwable"));
|
findAnyByIdMethod.addException(new FullyQualifiedJavaType("Throwable"));
|
||||||
findNoWhereByIdMethod.setAbstract(true);
|
findAnyByIdMethod.setAbstract(true);
|
||||||
repositoryInterface.addMethod(findNoWhereByIdMethod);
|
repositoryInterface.addMethod(findAnyByIdMethod);
|
||||||
|
|
||||||
// 8. findValidById
|
// 8. findValidById
|
||||||
Method findValidByIdMethod = new Method("findValidById");
|
Method findValidByIdMethod = new Method("findValidById");
|
||||||
@@ -346,7 +346,7 @@ public class TapeRepositoryGeneratorPlugin extends PluginAdapter {
|
|||||||
implClass.addField(mapperField);
|
implClass.addField(mapperField);
|
||||||
|
|
||||||
// 原有方法生成逻辑(无修改)
|
// 原有方法生成逻辑(无修改)
|
||||||
generateFindNoWhereByIdMethod(implClass, modelClassName, exampleClassName);
|
generateFindAnyByIdMethod(implClass, modelClassName, mapperFieldName, exampleClassName);
|
||||||
generateFindValidByIdMethod(implClass, modelClassName, exampleClassName);
|
generateFindValidByIdMethod(implClass, modelClassName, exampleClassName);
|
||||||
generateFindTrashByIdMethod(implClass, modelClassName, exampleClassName);
|
generateFindTrashByIdMethod(implClass, modelClassName, exampleClassName);
|
||||||
generateInsertMethod(implClass, modelClassName, mapperFieldName, introspectedTable);
|
generateInsertMethod(implClass, modelClassName, mapperFieldName, introspectedTable);
|
||||||
@@ -439,23 +439,23 @@ public class TapeRepositoryGeneratorPlugin extends PluginAdapter {
|
|||||||
implClass.addMethod(method);
|
implClass.addMethod(method);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void generateJavaFileToDisk(Interface intf, String packageName) {
|
private void generateJavaFileToDisk(Interface anInterface, String packageName) {
|
||||||
try {
|
try {
|
||||||
String packagePath = packageName.replace('.', File.separatorChar);
|
String packagePath = packageName.replace('.', File.separatorChar);
|
||||||
File targetDir = new File(targetProject, packagePath);
|
File targetDir = new File(targetProject, packagePath);
|
||||||
if (!targetDir.exists()) {
|
if (!targetDir.exists()) {
|
||||||
boolean mkdirs = targetDir.mkdirs();
|
boolean mkdirs = targetDir.mkdirs();
|
||||||
if (!mkdirs) {
|
if (!mkdirs) {
|
||||||
throw new RuntimeException("创建目录失败:" + targetDir.getAbsolutePath());
|
throw new RuntimeException("Created dir: " + targetDir.getAbsolutePath());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
String className = intf.getType().getShortName();
|
String className = anInterface.getType().getShortName();
|
||||||
File javaFile = new File(targetDir, className + ".java");
|
File javaFile = new File(targetDir, className + ".java");
|
||||||
String content = javaFormatter.getFormattedContent(intf);
|
String content = javaFormatter.getFormattedContent(anInterface);
|
||||||
java.nio.file.Files.write(javaFile.toPath(), content.getBytes(StandardCharsets.UTF_8));
|
java.nio.file.Files.write(javaFile.toPath(), content.getBytes(StandardCharsets.UTF_8));
|
||||||
System.out.println("成功生成接口文件:" + javaFile.getAbsolutePath());
|
System.out.println("Created: " + javaFile.getAbsolutePath());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException("生成Repository接口失败:" + intf.getType().getShortName(), e);
|
throw new RuntimeException("Create failure: " + anInterface.getType().getShortName(), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -466,7 +466,7 @@ public class TapeRepositoryGeneratorPlugin extends PluginAdapter {
|
|||||||
if (!targetDir.exists()) {
|
if (!targetDir.exists()) {
|
||||||
boolean mkdirs = targetDir.mkdirs();
|
boolean mkdirs = targetDir.mkdirs();
|
||||||
if (!mkdirs) {
|
if (!mkdirs) {
|
||||||
throw new RuntimeException("创建目录失败:" + targetDir.getAbsolutePath());
|
throw new RuntimeException("Created dir: " + targetDir.getAbsolutePath());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -474,9 +474,9 @@ public class TapeRepositoryGeneratorPlugin extends PluginAdapter {
|
|||||||
File javaFile = new File(targetDir, className + ".java");
|
File javaFile = new File(targetDir, className + ".java");
|
||||||
String content = javaFormatter.getFormattedContent(clazz);
|
String content = javaFormatter.getFormattedContent(clazz);
|
||||||
java.nio.file.Files.write(javaFile.toPath(), content.getBytes(StandardCharsets.UTF_8));
|
java.nio.file.Files.write(javaFile.toPath(), content.getBytes(StandardCharsets.UTF_8));
|
||||||
System.out.println("成功生成实现类文件:" + javaFile.getAbsolutePath());
|
System.out.println("Created: " + javaFile.getAbsolutePath());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException("生成Repository实现类失败:" + clazz.getType().getShortName(), e);
|
throw new RuntimeException("Create failure: " + clazz.getType().getShortName(), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -502,17 +502,16 @@ public class TapeRepositoryGeneratorPlugin extends PluginAdapter {
|
|||||||
implClass.addImportedType(new FullyQualifiedJavaType("java.util.List"));
|
implClass.addImportedType(new FullyQualifiedJavaType("java.util.List"));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void generateFindNoWhereByIdMethod(TopLevelClass implClass, String modelClassName, String exampleClassName) {
|
private void generateFindAnyByIdMethod(TopLevelClass implClass, String modelClassName, String mapperFieldName, String exampleClassName) {
|
||||||
Method method = new Method("findNoWhereById");
|
Method method = new Method("findAnyById");
|
||||||
method.addAnnotation("@Override");
|
method.addAnnotation("@Override");
|
||||||
method.setVisibility(JavaVisibility.PUBLIC);
|
method.setVisibility(JavaVisibility.PUBLIC);
|
||||||
method.setReturnType(new FullyQualifiedJavaType(modelClassName));
|
method.setReturnType(new FullyQualifiedJavaType(modelClassName));
|
||||||
method.addParameter(new Parameter(new FullyQualifiedJavaType("long"), "id"));
|
method.addParameter(new Parameter(new FullyQualifiedJavaType("long"), "id"));
|
||||||
method.addException(new FullyQualifiedJavaType("Throwable"));
|
method.addException(new FullyQualifiedJavaType("Throwable"));
|
||||||
|
method.addBodyLine(modelClassName + " aDo = " + mapperFieldName + ".selectByPrimaryKey(id);");
|
||||||
method.addBodyLine(modelClassName + " aDo = findValidById(id);");
|
method.addBodyLine("if (aDo != null && aDo.getIsDelete() == 1) {");
|
||||||
method.addBodyLine("if (aDo == null) {");
|
method.addBodyLine(" return null;");
|
||||||
method.addBodyLine(" aDo = findTrashById(id);");
|
|
||||||
method.addBodyLine("}");
|
method.addBodyLine("}");
|
||||||
method.addBodyLine("return aDo;");
|
method.addBodyLine("return aDo;");
|
||||||
|
|
||||||
|
|||||||
@@ -305,23 +305,23 @@ public class TapeRepoviewGeneratorPlugin extends PluginAdapter {
|
|||||||
/**
|
/**
|
||||||
* 手动将Java文件写入磁盘
|
* 手动将Java文件写入磁盘
|
||||||
*/
|
*/
|
||||||
private void generateJavaFileToDisk(Interface intf, String packageName) {
|
private void generateJavaFileToDisk(Interface anInterface, String packageName) {
|
||||||
try {
|
try {
|
||||||
String packagePath = packageName.replace('.', File.separatorChar);
|
String packagePath = packageName.replace('.', File.separatorChar);
|
||||||
File targetDir = new File(targetProject, packagePath);
|
File targetDir = new File(targetProject, packagePath);
|
||||||
if (!targetDir.exists()) {
|
if (!targetDir.exists()) {
|
||||||
boolean mkdirs = targetDir.mkdirs();
|
boolean mkdirs = targetDir.mkdirs();
|
||||||
if (!mkdirs) {
|
if (!mkdirs) {
|
||||||
throw new RuntimeException("创建目录失败:" + targetDir.getAbsolutePath());
|
throw new RuntimeException("Created dir: " + targetDir.getAbsolutePath());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
String className = intf.getType().getShortName();
|
String className = anInterface.getType().getShortName();
|
||||||
File javaFile = new File(targetDir, className + ".java");
|
File javaFile = new File(targetDir, className + ".java");
|
||||||
String content = javaFormatter.getFormattedContent(intf);
|
String content = javaFormatter.getFormattedContent(anInterface);
|
||||||
java.nio.file.Files.write(javaFile.toPath(), content.getBytes(StandardCharsets.UTF_8));
|
java.nio.file.Files.write(javaFile.toPath(), content.getBytes(StandardCharsets.UTF_8));
|
||||||
System.out.println("成功生成视图Repo接口:" + javaFile.getAbsolutePath());
|
System.out.println("Created: " + javaFile.getAbsolutePath());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException("生成视图Repo接口失败:" + intf.getType().getShortName(), e);
|
throw new RuntimeException("Create failure: " + anInterface.getType().getShortName(), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -332,16 +332,16 @@ public class TapeRepoviewGeneratorPlugin extends PluginAdapter {
|
|||||||
if (!targetDir.exists()) {
|
if (!targetDir.exists()) {
|
||||||
boolean mkdirs = targetDir.mkdirs();
|
boolean mkdirs = targetDir.mkdirs();
|
||||||
if (!mkdirs) {
|
if (!mkdirs) {
|
||||||
throw new RuntimeException("创建目录失败:" + targetDir.getAbsolutePath());
|
throw new RuntimeException("Created dir: " + targetDir.getAbsolutePath());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
String className = clazz.getType().getShortName();
|
String className = clazz.getType().getShortName();
|
||||||
File javaFile = new File(targetDir, className + ".java");
|
File javaFile = new File(targetDir, className + ".java");
|
||||||
String content = javaFormatter.getFormattedContent(clazz);
|
String content = javaFormatter.getFormattedContent(clazz);
|
||||||
java.nio.file.Files.write(javaFile.toPath(), content.getBytes(StandardCharsets.UTF_8));
|
java.nio.file.Files.write(javaFile.toPath(), content.getBytes(StandardCharsets.UTF_8));
|
||||||
System.out.println("成功生成视图Repo实现类:" + javaFile.getAbsolutePath());
|
System.out.println("Created: " + javaFile.getAbsolutePath());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException("生成视图Repo实现类失败:" + clazz.getType().getShortName(), e);
|
throw new RuntimeException("Create failure: " + clazz.getType().getShortName(), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user