发生场景
通过map接收前端传入的对象数据,在map中装入了一个key对应了一个list集合。通过获取list,强转为指定类的List<自定义类>集合,然后使用mybatisplus的插入,发现设置的自动生成的id、时间全部为空!
原因
通过@RequestBody接收到map中的对象数据,通过fastjson将json对象装入了map中,包括其中的list集合。list集合默认使用LinkedHashMap装入数据。此时,如果用强转的方式,将list强转为指定类的集合,则实质上该集合仍然指向的是linkedHashMap集合,所以mybatisplus无法对该集合内容进行增强,设置的自动生成的id、时间都不能成功。所以虽然方法可以顺利执行插入,但是没有自动生成的值!
解决办法
通过List