shikeying
2024-01-11 3b67e947e36133e2a40eb2737b15ea375e157ea0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#macro ( property $name $type )
    private $type $name;
    protected boolean isset_${name};
#end
#macro ( accessM $name $type )
    public #javatype(${type}) get#camelClass($name)() {
        return this.#camelField($name);
    }
 
    public void set#camelClass($name)(#javatype(${type}) #camelField(${name})) {
        this.#camelField(${name}) = #camelField(${name});
        this.isset_#camelField(${name}) = true;
    }
 
    @JsonIgnore
    public boolean isEmpty#camelClass($name)() {
#if (${stringUtils.getJavaType($type)} == "String")
        return this.#camelField(${name}) == null || this.#camelField(${name}).length() == 0;
#else
        return this.#camelField(${name}) == null;
#end
    }
#end
 
#macro (join $name $type)
    if (this.isEmpty#ucf($name)()) {
        sbWhere.append("($name is null)");
    } else {
#if(${stringUtils.getJavaType($type)} == "String")
        sbWhere.append("($name='" + this.doFilter(this.get#ucf($name)())+ "')");
#else
     sbWhere.append("($name=" + this.get#ucf($name)()+ ")");
#end
    }
    sbWhere.append(" AND ");
#end
#macro ( lower $value )${value.toLowerCase()}#end
#macro ( upper $value )${value.toUpperCase()}#end
#macro ( lcf $name )${stringUtils.toLowerCaseFirst($name)}#end
#macro ( ucf $name )${stringUtils.transferUnderlineName2Camel($name, true)}#end
#macro ( lucf $value )${stringUtils.transferUnderlineName2Camel(${value.toLowerCase()}, true)}#end
#macro ( camelField $value )${stringUtils.transferUnderlineName2Camel(${value.toLowerCase()}, false)}#end
#macro ( camelClass $value )${stringUtils.transferUnderlineName2Camel(${value.toLowerCase()}, true)}#end
#macro ( javatype $type )${stringUtils.getJavaType($type)}#end##
#############################################################################################
package com.iplatform.model.po;
 
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.walker.jdbc.BasePo;
 
/**
 * 表名:#upper($table_name)
 *
 * @author genrator
 */
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY)
public class #lucf($table_name) extends BasePo<#lucf($table_name)> {
    // 序列化版本号
    private static final long serialVersionUID = 1L;
 
## 主键
    // 主键
    private #javatype(${pk_type}) #camelField(${pk_name}) = null;
    @JsonIgnore
    protected boolean isset_#camelField(${pk_name}) = false;
 
## 属性
    // 属性列表
#foreach ($property in $columns)
    private #javatype($property.type) #camelField(${property.name}) = null;
    @JsonIgnore
    protected boolean isset_#camelField(${property.name}) = false;
 
#end
    /**
     * 默认构造函数
     */
    public #lucf(${table_name})() {
    }
 
    /**
     * 根据主键构造对象
     */
    public #lucf(${table_name})(#javatype(${pk_type}) #camelField(${pk_name})) {
        this.set#ucf(${pk_name})(#camelField(${pk_name}));
    }
 
    /**
     * 设置主键值
     */
    @Override
    public void setPkValue(Object value) {
        this.set#ucf(${pk_name})((#javatype(${pk_type})) value);
    }
 
#accessM(${pk_name} ${pk_type})
 
##属性setter getter isEmpty
#foreach ($property in $columns)
#accessM(${property.name} ${property.type})
 
#end
    /**
     * 重写 toString() 方法
     */
    @Override
    public String toString() {
        return new StringBuilder()
                .append("#camelField(${pk_name})=").append(this.#camelField(${pk_name}))
#foreach ($property in $columns)
                .append("#camelField(${property.name})=").append(this.#camelField(${property.name}))
#end
                .toString();
    }
 
    /**
     * 克隆
     */
    public #lucf($table_name) $clone() {
        #lucf($table_name) #lower($table_name) = new #lucf($table_name)();
 
        // 数据库名称
        //#lower($table_name).setDatabaseName_(this.getDatabaseName_());
 
        // 主键
        if (this.isset_#camelField(${pk_name})) {
            #lower($table_name).set#camelClass(${pk_name})(this.get#camelClass(${pk_name})());
        }
        // 普通属性
#foreach ($property in $columns)
        if (this.isset_#camelField(${property.name})) {
            #lower($table_name).set#camelClass($property.name)(this.get#camelClass($property.name)());
        }
#end
        return #lower($table_name);
    }
}