现象:
和平时写接口一样,写完后测试时发现返回到前端的数据只剩下了ID,

思路:
id这个字段是父类的方法,也就是子类的字段发生了丢失,因为已经排查过数据是有的,但是返回的时候没有这个字段,而且SpringMVC默认是jackson序列化,稍微想了一下,返回序列化是默认会调用Bean的get方法获取属性,所以看了下java Bean,发现了这个@Accessors注解不知道被谁加上了,发现了问题。
@Accessors注解
fluent
不写默认为false,当该值为 true 时,对应字段的 getter 方法前面就没有 get,setter 方法就不会有 set。
chain
不写默认为false,当该值为 true 时,对应字段的 setter 方法调用后,会返回当前对象。
解决
因为使用了fluent属性,导致get方法变了,springMVC在序列化json时候找不到对应属性,所以发生了属性丢失。
建议如果用到MVC返回数据时,就不要用@Accessors注解。
坑