1、背景:
在项目开发过程中,数据表生成的实体类都是用工具生成的,生成的代码自然各种注解都已经写上了,每个表都会有一些公共的字段,衍生出一个基础公用的字段实体类(BaseEntity),都会继承这个类.每次开发过程中,业务的需要有一个新字段(newField),于是就加入到了BaseEntity中,没有在这字段newField上加注解,写得如此的愉快,启动时也没有报错,当执行操作的时候,发现sql中莫名的多了这个newField的字段,而这个字段数据库里没有的开始找问题以为是什么奇怪的问题,后面其它的sql出现这个字段,这时才想到是BaseEntity的newField导致的。
2、解决方案:
在BaseEntity的newField字段上加上@TableField(exist = false) ,这注解的意思是表明忽略该字段在数据库不存在的,也就是这个字段不会写入数据库操作上。
3、总结:
一个很小的知识点问题,由于自己的粗心大意,想当然的理解成没有写上注解就是忽略数据库字段,导致了很大的一个问题,以后遇到这种不是100%确定的事一定要先确认清楚,三思而后行。