SpringBoot JPA实践之自动生成Entity

JPA
placeholder image
admin 发布于:2020-04-22 00:30:49
阅读:loading

SpringBoot JPA实践之自动生成Entity,也可以说是IntelliJ IDEA反向生成Javabean,具体的实现可参考之前有一篇名为《IntelliJ IDEA反向生成Javabean(锲合度100%)》的分享(本站右上角的关键字搜一搜),它的实现是满足个人日常使用MybatisPlus + lombok + Swagger完美结合,类与字段的注释均为动态获取,由于本次使用到JPA,故在深入之前,将之前的基于MybatisPlus的实现修改为使用JPA的Entity动态实现,套路一样,仍然是采用IntelliJ IDEA + Groovy语言实现,IDEA配置Database的详细过程参考前面的,重点在于Generate POJOs.groovy文件的代码,具体如下。

Generate POJOs.groovy

image.png

生成Entity文件代码

image.png


Entity生成细节

(1)通过设置后使用IDEA自带的工具一键生成;

(2)选择生成的文件需要存放的代码包路径;

(3)动态获取生成Entity的package路径(依赖选择的包路径中含有maven项目的src\main\java路径);

(4)导入生成Entity文件的最基本依赖,参考“Entity生成范围”的基本类库;

(5)支持数据库名称与Java名称转换,如将数据库的匈牙利转换为Java的驼峰命名;

(6)支持数据库类型与Java类型转换,如将int转Integer、bigint转Long、date转Date等;

(7)主键生成策略采用JPA的“全局唯一ID uuid”的方式,约定从数据库表字段的注释中获取含有“主键ID”字样的列,约定此时为主键列,也有见到使用默认第一个字段的列约定为主键列的,但一些关系表中有的时候不需要创建主键列的情况,总之,我这里的默认规则如此;

(8)动态生成注释参数,如@author、@date、及类的说明(来自数据库表的说明);

(9)动态生成字段类型、名称、ApiProperty注释(来自数据库表字段的说明);

(10)支持需要导入类的非基本类型,如java.util.Date、java.io.InputStream等;

(11)结合lombok插件,不生成get/set属性方法;

(12)生成文件使用UTF-8编码,并且支持其中的中文;

下载地址

https://gitee.com/88911006/chendd-examples/blob/master/chendd-blog-Table2JavaBean/src/main/resource


 点赞


 发表评论

当前回复:作者

 评论列表


留言区