DAO拦截器
huiche提供了org.huiche.dao.support.DaoInterceptor 可用于拦截处理dao的内置方法的一些行为,自行使用JdbcExecutor进行的操作,无法拦截. 提供了一系列方法,分别在各个阶段处理
preXXX属于前置操作,是一进入方法即调用的beforeXXX属于执行之前,此时已经生成了语句,支是待执行(page没有before阶段,因为其底层是调用count和list)afterXXX执行之后,此时已经执行完毕,获取到结果
所有阶段如果出现错误,均不会继续往下执行
insert相关
preInsert插入前置处理,可在此处进行一些实体类额外修改操作, 如id注入,审计字段等beforeInsert插入语句执行之前,此时已经 生成插入语句, 修改实体对象不会改变插入语句,但可以直接修改插入语句afterInsert插入语句执行之后,已执行完毕,一般只用来记录preInsertBatch批量插入前置处理,可在此处进行一些实体类额外修改操作, 如id注入,审计字段等beforeInsertBatch批量插入执行之前,此时已经 生成插入语句, 修改实体对象不会改变插入语句,但可以直接修改插入语句afterInsertBatch批量插入执行之后,已执行完毕,一般只用来记录
delete相关
preDelete删除前置处理, 可返回删除语句自定义, 无需操作可以返回空操作或null,一般仅用于添加前置条件(早于dao其他参数传入的条件)beforeDelete删除执行之前, 语句已生成, 可直接修改语句,或者返回新语句(如伪删除时Delete改Update)afterDelete删除执行之后,已执行完毕,一般只用来记录
update 相关
preUpdate更新前置处理,可在此处进行一些实体类额外修改操作, 如审计字段等beforeUpdate更新执行之前,已生成更新语句, 修改实体类不会作用于语句, 但可直接修改语句afterUpdate更新执行之后,已执行完毕,一般只用来记录
查询相关(get/list/stream/page)
preGet单条查询前置处理, 可通过返回Select语句自定义来预设条件等,作用于业务参数之前beforeGet单条查询执行之前,可调整语句,作用于业务参数之后afterGet单条查询执行之后,已执行完毕,一般只用来记录preList列表查询前置处理, 可通过返回Select语句自定义来预设条件等,作用于业务参数之前beforeList列表查询执行之前,可调整语句,作用于业务参数之后afterList列表查询执行之后,已执行完毕,一般只用来记录preStreamstream查询前置处理, 可通过返回Select语句自定义来预设条件等,作用于业务参数之前beforeStreamstream查询执行之前,可调整语句,作用于业务参数之后afterStreamstream查询执行之后,已执行完毕,一般只用来记录prePage分页查询前置处理,分页查询内部调用count与list,此处只能拦截判断Pageable或记录日志afterPage分页查询执行之后,已执行完毕,一般只用来记录
了解添加拦截器