java - mybatis plus自动更新数据问题?
问题描述:
@Component public class MyMetaObjectHandler implements MetaObjectHandler { @Override //插入时候处理 public void insertFill(MetaObject metaObject) { System.out.println("insertFill"); System.out.println(metaObject); this.setFieldValByName("gmtCreate", new Date().getTime(), metaObject); this.setFieldValByName("gmtModify", new Date().getTime(), metaObject); } @Override //更新时候处理 public void updateFill(MetaObject metaObject) { System.out.println("updateFill"); System.out.println(metaObject); //LocalDateTime.now() this.setFieldValByName("gmtModify", new Date().getTime(), metaObject); } }
现在存在一个问题就是,新加了一个更新人的字段,但是这个更新人是前端通过header里面一个userId字段传过来的
这里怎么能够获取请求的header数据呢,大概就是获取HttpServletRequest request这个
或者是其他方式能够获取到也可以,或者可以获取到body或者query参数也行,关键是想在这里获取到前端传过来的数据
大致的想法就是在这个里面能够获取前端传来的数据参数
第 1 个答案:
ThreadLocal
或 RequestContextHolder
HttpServletRequest request = ((ServletRequestAttributes) (RequestContextHolder.currentRequestAttributes())).getRequest()
ThreadLocal
比较麻烦,需要如下步骤
- 自己封装一个
ThreadLocal
工具类 - 新增一个
拦截器/拦截器
,如:OncePerRequestFilter
,在此处将数据存入ThreadLocal
- 在需要的地方,调用工具类内的方法,获取指定的数据
RequestContextHolder
的话,直接在MyMetaObjectHandler
里调用就行了,记得判断null问题
在使用ts的时候,这里的type?: string 的问号是什么意思?interface NodeConfig { id: string; type?: ...