使用Generator时,自定义的model层的公共方法写在哪里啊?

QQ截图20160829063336.png



@JFinal 按照我的理解,写了下面的代码,不过好像不对……我想让Generator生成的baseModel都继承自我自定义的commonModel ^_^ 该怎么写呀?

package baseModel;

import com.jfinal.plugin.activerecord.generator.BaseModelGenerator;
import com.jfinal.plugin.activerecord.generator.TableMeta;

public class ResetBaseModelGenerator extends BaseModelGenerator {
	protected String classDefineTemplate =
			"/**%n" +
			" * Generated by JFinal, do not modify this file.%n" +
			" */%n" +
			"@SuppressWarnings(\"serial\")%n" +
			"public abstract class %s<M extends %s<M>> extends CommonModel<M> implements IBean {%n%n";
	
	public ResetBaseModelGenerator(String baseModelPackageName,
			String baseModelOutputDir) {
		super(baseModelPackageName, baseModelOutputDir);
		// TODO Auto-generated constructor stub
	}

	
	
	protected void genClassDefine(TableMeta tableMeta, StringBuilder ret) {
		ret.append(String.format(classDefineTemplate, tableMeta.baseModelName, tableMeta.baseModelName));
	}
}


评论区

JFinal

2016-08-29 09:46

就是这个方向,注意三点:
1:原来的 classDefineTemplate 中是 extends Model,改成 extends CommonModel
2:让 CommonModel 继承 Model
3:使用生成器时注入:generator.setBaseModelGenerator(new ResetBaseModelGenerator())

nbjgl

2016-08-29 11:32

搞定,多谢~

JFinal

2016-08-30 15:11

@nbjgl 把搞定的方案回来发个分享哈

mingxin1021

2017-08-16 11:49

@nbjgl @JFinal请问怎么搞定的呀?generator.setBaseModelGenerator 这个方法并没有啊!

JFinal

2017-08-16 16:02

@mingxin1021 由于 BaseModelGenerator 这个对于生成器来说是必须的,所以需要通过构造方法传进去,前面是笔误,更正如下:
new Generator(new MyBaseModelGenerator());