1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.mybatis.generator.codegen.mybatis3.javamapper.elements.annotated;
17
18 import static org.mybatis.generator.api.dom.OutputUtilities.javaIndent;
19 import static org.mybatis.generator.internal.util.StringUtility.escapeStringForJava;
20
21 import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType;
22 import org.mybatis.generator.api.dom.java.Interface;
23 import org.mybatis.generator.api.dom.java.Method;
24 import org.mybatis.generator.codegen.mybatis3.javamapper.elements.SelectAllMethodGenerator;
25 import org.mybatis.generator.config.PropertyRegistry;
26 import org.mybatis.generator.internal.util.StringUtility;
27
28 public class AnnotatedSelectAllMethodGenerator extends SelectAllMethodGenerator {
29
30 public AnnotatedSelectAllMethodGenerator() {
31 super();
32 }
33
34 @Override
35 public void addMapperAnnotations(Interface interfaze, Method method) {
36 interfaze.addImportedType(new FullyQualifiedJavaType("org.apache.ibatis.annotations.Select"));
37
38 buildInitialSelectAnnotationStrings().forEach(method::addAnnotation);
39
40 StringBuilder sb = new StringBuilder();
41 javaIndent(sb, 1);
42 sb.append("\"from ");
43 sb.append(escapeStringForJava(introspectedTable.getAliasedFullyQualifiedTableNameAtRuntime()));
44 sb.append('\"');
45
46 String orderByClause = introspectedTable.getTableConfigurationProperty(
47 PropertyRegistry.TABLE_SELECT_ALL_ORDER_BY_CLAUSE);
48 boolean hasOrderBy = StringUtility.stringHasValue(orderByClause);
49 if (hasOrderBy) {
50 sb.append(',');
51 }
52 method.addAnnotation(sb.toString());
53
54 if (hasOrderBy) {
55 sb.setLength(0);
56 javaIndent(sb, 1);
57 sb.append("\"order by ");
58 sb.append(orderByClause);
59 sb.append('\"');
60 method.addAnnotation(sb.toString());
61 }
62
63 method.addAnnotation("})");
64
65 addAnnotatedResults(interfaze, method, introspectedTable.getNonPrimaryKeyColumns());
66 }
67
68 @Override
69 public void addExtraImports(Interface interfaze) {
70 addAnnotatedSelectImports(interfaze);
71 }
72 }