#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); } }