1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.mybatis.generator.codegen.mybatis3.xmlmapper.elements;
17
18 import static org.mybatis.generator.internal.util.StringUtility.stringHasValue;
19
20 import org.mybatis.generator.api.dom.xml.Attribute;
21 import org.mybatis.generator.api.dom.xml.TextElement;
22 import org.mybatis.generator.api.dom.xml.XmlElement;
23
24
25
26
27
28
29 public class SelectByExampleWithBLOBsElementGenerator extends
30 AbstractXmlElementGenerator {
31
32 public SelectByExampleWithBLOBsElementGenerator() {
33 super();
34 }
35
36 @Override
37 public void addElements(XmlElement parentElement) {
38 String fqjt = introspectedTable.getExampleType();
39
40 XmlElement answer = new XmlElement("select");
41 answer
42 .addAttribute(new Attribute(
43 "id", introspectedTable.getSelectByExampleWithBLOBsStatementId()));
44 answer.addAttribute(new Attribute(
45 "resultMap", introspectedTable.getResultMapWithBLOBsId()));
46 answer.addAttribute(new Attribute("parameterType", fqjt));
47
48 context.getCommentGenerator().addComment(answer);
49
50 answer.addElement(new TextElement("select"));
51 XmlElement ifElement = new XmlElement("if");
52 ifElement.addAttribute(new Attribute("test", "distinct"));
53 ifElement.addElement(new TextElement("distinct"));
54 answer.addElement(ifElement);
55
56 StringBuilder sb = new StringBuilder();
57 if (stringHasValue(introspectedTable
58 .getSelectByExampleQueryId())) {
59 sb.append('\'');
60 sb.append(introspectedTable.getSelectByExampleQueryId());
61 sb.append("' as QUERYID,");
62 answer.addElement(new TextElement(sb.toString()));
63 }
64
65 answer.addElement(getBaseColumnListElement());
66 answer.addElement(new TextElement(","));
67 answer.addElement(getBlobColumnListElement());
68
69 sb.setLength(0);
70 sb.append("from ");
71 sb.append(introspectedTable
72 .getAliasedFullyQualifiedTableNameAtRuntime());
73 answer.addElement(new TextElement(sb.toString()));
74 answer.addElement(getExampleIncludeElement());
75
76 ifElement = new XmlElement("if");
77 ifElement.addAttribute(new Attribute("test", "orderByClause != null"));
78 ifElement.addElement(new TextElement("order by ${orderByClause}"));
79 answer.addElement(ifElement);
80
81 if (context.getPlugins()
82 .sqlMapSelectByExampleWithBLOBsElementGenerated(answer,
83 introspectedTable)) {
84 parentElement.addElement(answer);
85 }
86 }
87 }