本项目使用的是JFinal3.1的版本,在使用Generator创建生成Model的时候,调用默认的Dao()方法,使用IDEA调试的时候,发现会出现
Method threw 'java.lang.RuntimeException' exception. Cannot evaluate com.feizhou.log.model.LogInfo.toString() 异常信息,
虽然不影响使用,但是作为一个严谨的程序猿,我决定改掉这个
首先BaseModelGenerator加上toString模板信息
作如下修改:
1:增加toString模板
protected String toStringTemplate =
"\tpublic String toString() {%n" +
"\t\treturn %s;%n" +
"\t}%n%n";2:修改genBaseModelContent方法
protected void genBaseModelContent(TableMeta tableMeta) {
StringBuilder ret = new StringBuilder();
genPackage(ret);
genImport(ret);
genClassDefine(tableMeta, ret);
StringBuilder retToStr = new StringBuilder();
for (ColumnMeta columnMeta : tableMeta.columnMetas) {
genSetMethodName(columnMeta, ret);
genGetMethodName(columnMeta, ret);
String attrName = columnMeta.attrName;
String getterMethodName = "get" + StrKit.firstCharToUpperCase(attrName);
retToStr.append("\"" + attrName + ":\"" + " + " + "this." + getterMethodName + "()" + " + \"" + ", \"" + "+");
}
String toString = String.format(toStringTemplate, retToStr.toString().substring(0, retToStr.toString().length() - 1));
ret.append(toString);
ret.append(String.format("}%n"));
tableMeta.baseModelContent = ret.toString();
}3:输出BaseModel如下
package com.feizhou.log.model.po;
import com.jfinal.plugin.activerecord.Model;
import com.jfinal.plugin.activerecord.IBean;
/**
* Generated by JFinal, do not modify this file.
*/
@SuppressWarnings({"serial", "unchecked"})
public abstract class BaseLogUser<M extends BaseLogUser<M>> extends Model<M> implements IBean {
public M setId(java.lang.Long id) {
set("id", id);
return (M)this;
}
public java.lang.Long getId() {
return get("id");
}
public M setUserName(java.lang.String userName) {
set("user_name", userName);
return (M)this;
}
public java.lang.String getUserName() {
return get("user_name");
}
public M setPassword(java.lang.String password) {
set("password", password);
return (M)this;
}
public java.lang.String getPassword() {
return get("password");
}
public String toString() {
return "id:" + this.getId() + ", "+"userName:" + this.getUserName() + ", "+"password:" + this.getPassword() + ", ";
}
}