求适用于Eclipse或CLI的JPA实体类仓库与服务类生成工具
适用于Eclipse的JPA仓库/服务类生成工具及CLI方案
Eclipse插件推荐
1. Eclipse JPA Generator(免费开源)
这款插件可基于现有JPA实体类批量生成标准Spring Data JPA仓库接口,支持自定义模板,能根据项目规范调整仓库类结构——比如是否添加自定义查询方法、选择继承JpaRepository或CrudRepository等父接口。生成流程简单:
- 选中实体类所在的包
- 右键选择「Generate JPA Repository」
- 在配置界面设置生成路径、父接口、命名规则等,一键批量生成所有仓库类
2. Spring Tools 4(STS)内置功能
如果使用Spring Tools 4 for Eclipse,它自带代码生成能力:
- 右键点击项目,选择「Spring」>「Generate Spring Data JPA Repositories」
- 选择目标实体类,设置生成包路径,快速生成对应仓库接口
- 针对服务类,STS支持通过「Generate Service Layer」功能,基于仓库类生成基础CRUD服务模板,只需补充业务逻辑即可
CLI工具推荐
1. OpenAPI Generator(自定义模板生成)
虽主打API生成,但可通过自定义Freemarker模板生成JPA仓库和服务类:
- 编写实体类元数据描述(或直接以Java类为输入)
- 自定义匹配项目结构的仓库、服务类Freemarker模板
- 执行命令完成生成:
这种方式灵活性极高,完全适配自定义代码规范。openapi-generator generate -g java -i your-entity-spec.yaml -o output-dir -t path-to-custom-templates
2. JCodeModel(代码生成库)
这是一款用Java代码生成Java类的库,可编写简单脚本遍历所有JPA实体类,自动生成对应仓库和服务类:
- 遍历项目中所有标注
@Entity的类 - 为每个实体生成继承
JpaRepository的仓库接口 - 生成包含CRUD方法的基础服务类,调用对应仓库方法
- 示例代码片段:
脚本写完后可打包成Jar,通过命令行执行批量生成。JCodeModel cm = new JCodeModel(); JClass entityClass = cm.ref(User.class); JClass repositoryClass = cm.ref(JpaRepository.class).narrow(entityClass, Long.class); JDefinedClass repoInterface = cm._package("com.example.repo")._interface("UserRepository"); repoInterface._extends(repositoryClass); cm.build(new File("src/main/java"));
额外实用技巧
- 若使用Maven,可结合
maven-plugin-plugin编写自定义Maven插件,在编译阶段自动生成仓库和服务类,完全集成到构建流程 - 利用Eclipse的「Code Templates」功能,自定义仓库、服务类代码模板,选中实体类后通过快捷键快速生成单个类,适合小批量补充生成
内容的提问来源于stack exchange,提问作者Sohail Anwar
相关产品推荐
相关产品推荐

