在生成serviceImpl时需要加@Transactional事务注解,这时需要自定义模板。

实现

在上面代码生成器的基础上。

找到MyBatisPlus自带的模板,比如这里要修改serviceImpl模板。

项目中导入MyBatisPlus相关jar包,找到如下位置。

手动将其复制templates目录下

MyBatisPlus3.x代码生成器自定义模板配置_java

双击打开

package ${package.ServiceImpl};

import ${package.Entity}.${entity};
import ${package.Mapper}.${table.mapperName};
import ${package.Service}.${table.serviceName};
import ${superServiceImplClassPackage};
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

/**
* <p>
* $!{table.comment} 服务实现类
* </p>
*
* @author ${author}
* @since ${date}
*/
@Service
#if(${kotlin})
open class ${table.serviceImplName} : ${superServiceImplClass}<${table.mapperName}, ${entity}>(), ${table.serviceName} {

}
#else
public class ${table.serviceImplName} extends ${superServiceImplClass}<${table.mapperName}, ${entity}> implements ${table.serviceName} {

}
#end

添加如下注解

MyBatisPlus3.x代码生成器自定义模板配置_自定义模板配置_02

然后来到代码生成器的代码这里

//注入全局设置
new AutoGenerator().setGlobalConfig(config)
//注入数据源配置
.setDataSource(dataSourceConfig)
//注入策略配置
.setStrategy(strategyConfig)
//设置包名信息
.setPackageInfo(
new PackageConfig()
//提取公共父级包名
.setParent("com.badao.bus.sys")
//设置controller信息
.setController("controller")
//设置实体类信息
.setEntity("entity")
)
//设置自定义模板
.setTemplate(
new TemplateConfig()
//.setXml(null)//指定自定义模板路径, 位置:/resources/templates/entity2.java.ftl(或者是.vm)
//注意不要带上.ftl(或者是.vm), 会根据使用的模板引擎自动识别
// 自定义模板配置,模板可以参考源码 /mybatis-plus/src/main/resources/template 使用 copy
// 至您项目 src/main/resources/template 目录下,模板名称也可自定义如下配置:
// .setController("...");
// .setEntity("...");
// .setMapper("...");
// .setXml("...");
// .setService("...");
.setServiceImpl("templates/serviceImpl.java")
)
//开始执行代码生成
.execute();

注意

注意不要带上.ftl(或者是.vm), 会根据使用的模板引擎自动识别
指定自定义模板路径, 位置:/resources/templates/entity2.java.ftl(或者是.vm)