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 public class SelectByExampleWithBLOBsElementGenerator extends AbstractXmlElementGenerator {
25
26 public SelectByExampleWithBLOBsElementGenerator() {
27 super();
28 }
29
30 @Override
31 public void addElements(XmlElement parentElement) {
32
33 XmlElement answer = new XmlElement("select");
34 answer.addAttribute(new Attribute(
35 "id", introspectedTable.getSelectByExampleWithBLOBsStatementId()));
36 answer.addAttribute(new Attribute(
37 "resultMap", introspectedTable.getResultMapWithBLOBsId()));
38 answer.addAttribute(new Attribute("parameterType", introspectedTable.getExampleType()));
39
40 context.getCommentGenerator().addComment(answer);
41
42 answer.addElement(new TextElement("select"));
43 XmlElement ifElement = new XmlElement("if");
44 ifElement.addAttribute(new Attribute("test", "distinct"));
45 ifElement.addElement(new TextElement("distinct"));
46 answer.addElement(ifElement);
47
48 StringBuilder sb = new StringBuilder();
49 if (stringHasValue(introspectedTable.getSelectByExampleQueryId())) {
50 sb.append('\'');
51 sb.append(introspectedTable.getSelectByExampleQueryId());
52 sb.append("' as QUERYID,");
53 answer.addElement(new TextElement(sb.toString()));
54 }
55
56 answer.addElement(getBaseColumnListElement());
57 answer.addElement(new TextElement(","));
58 answer.addElement(getBlobColumnListElement());
59
60 sb.setLength(0);
61 sb.append("from ");
62 sb.append(introspectedTable.getAliasedFullyQualifiedTableNameAtRuntime());
63 answer.addElement(new TextElement(sb.toString()));
64 answer.addElement(getExampleIncludeElement());
65
66 ifElement = new XmlElement("if");
67 ifElement.addAttribute(new Attribute("test", "orderByClause != null"));
68 ifElement.addElement(new TextElement("order by ${orderByClause}"));
69 answer.addElement(ifElement);
70
71 if (context.getPlugins().sqlMapSelectByExampleWithBLOBsElementGenerated(answer, introspectedTable)) {
72 parentElement.addElement(answer);
73 }
74 }
75 }