前提:操作数据库使用的MybatisPlus,场景是要把三个字段的数据存到数据库里
问题原因:(网上资料所述)
1.本身就没有该Field; 2.有该Field,但是该Field是使用private修饰的,而在获取该Field的时候,需要使用getDeclaredField这个方法。
我属于第一种,原因是数据库有默认的字段(id,创建人id,创建时间,修改人id,修改时间,逻辑删除)是默认不传的,然后前端往后台没有传这几个字段,没有给字段赋值所以就导致了。
解决过程:1. 原因:数据库把上面默认不传的字段封装到了一个实体类里边,实体类只存放着使用
的字段
操作:实体类继承了那个类
2.原因:在service层我使用了insert操作,正常来说,在service是使用save,在mapper层是使用insert,
操作:使用save保存,返回值是boolean
3.原因:此时数据库的九个字段ok了,但是由于我们没有赋值所以出现
NoSuchFieldException的问题,在MybatiPlus是一个方法将这些默认属性进行赋值的。
操作:由于公司封装了一个,所以在这里是使用公司封装的工具类来给那些默认字段进行赋值。