Interface DaoInterceptor
- All Known Implementing Classes:
DaoInterceptors
public interface DaoInterceptor
拦截器
preXXX 早于before 增删改可以在生成语句之前修改实体/条件等,查询时可做记录或者是抛异常阻止执行
beforeXXX 在...之前, 已经生成语句, 再修改实体/q/条件等不会作用于语句, 但是可以直接修改语句
after 在...之后,已经执行完毕, 一般只用于记录
只作用于dao, 不作用于直接由jdbc执行器执行的dsl/原生sql
preXXX 早于before 增删改可以在生成语句之前修改实体/条件等,查询时可做记录或者是抛异常阻止执行
beforeXXX 在...之前, 已经生成语句, 再修改实体/q/条件等不会作用于语句, 但是可以直接修改语句
after 在...之后,已经执行完毕, 一般只用于记录
只作用于dao, 不作用于直接由jdbc执行器执行的dsl/原生sql
- Author:
- Maning
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptiondefault voidafterDelete(Class<?> entityClass, Statement statement, int result) 删除之后default void单条查询执行之后default voidafterInsert(Class<?> entityClass, Object source, Insert insert, int result) 插入执行之后
已执行完毕,一般只用来记录default voidafterInsertBatch(Class<?> entityClass, List<?> sources, Insert insert, int result) 批量插入执行之后
已执行完毕,一般只用来记录
如果原entities包含已赋值自增id和未赋值id两组,则会分开两组执行,调用2次default void列表查询执行之后default void分页查询执行之后default voidafterStream(Class<?> entityClass, Type elementType, Select select, Stream<?> result) stream查询执行之后default voidafterUpdate(Class<?> entityClass, Object source, Update update, int result) 更新执行之后
一般只用来记录default StatementbeforeDelete(Class<?> entityClass, Statement statement) 删除执行之前
语句已生成, 可直接修改语句,或者返回新语句(如伪删除时Delete改Update)default void单条查询执行之前,可调整语句,作用于业务参数之后default voidbeforeInsert(Class<?> entityClass, Object source, Insert insert) 插入执行之前
此时已经 生成插入语句, 修改实体对象不会改变插入语句,但可以直接修改插入语句default voidbeforeInsertBatch(Class<?> entityClass, List<?> sources, Insert insert) 批量插入执行之前
此时已经 生成插入语句, 修改实体对象不会改变插入语句,但可以直接修改插入语句
如果 原entities包含已赋值自增id和未赋值id两组,则会分开两组执行,调用2次default voidbeforeList(Class<?> entityClass, Type elementType, Select select) 列表查询执行之前,可调整语句,作用于业务参数之后default voidbeforeStream(Class<?> entityClass, Type elementType, Select select) stream查询执行之前,可调整语句,作用于业务参数之后default voidbeforeUpdate(Class<?> entityClass, Object source, Update update) 更新执行之前
已生成更新语句, 修改实体类不会作用于语句, 但可直接修改语句删除前置处理,先于before单条查询前置处理default void插入前置处理,先于before
可在此处进行一些实体类额外修改操作, 如id注入,审计字段等default voidpreInsertBatch(Class<?> entityClass, List<?> entities) 批量插入前置处理,先于before
可在此处进行一些实体类额外修改操作, 如id注入,审计字段等列表查询前置处理default void分页查询前置处理
分页查询内部调用count(属于get)和list(属于collection)实现,所以无单独的before,此处仅用于拦截pageable或记录日志stream查询前置处理更新前置处理, 在before之前
可在此处进行一些实体类额外修改操作, 如审计字段等
-
Field Details
-
EMPTY
空实例
-
-
Method Details
-
afterDelete
-
afterGet
-
afterInsert
-
afterInsertBatch
-
afterList
-
afterPage
-
afterStream
-
afterUpdate
-
beforeDelete
-
beforeGet
-
beforeInsert
-
beforeInsertBatch
-
beforeList
-
beforeStream
-
beforeUpdate
-
preDelete
-
preGet
-
preInsert
-
preInsertBatch
-
preList
-
prePage
-
preStream
-
preUpdate
-