Class DaoInterceptors
java.lang.Object
org.huiche.dao.support.DaoInterceptors
- All Implemented Interfaces:
DaoInterceptor
-
Field Summary
Fields inherited from interface DaoInterceptor
EMPTY -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidafterDelete(Class<?> entityClass, Statement statement, int result) 删除之后void单条查询执行之后voidafterInsert(Class<?> entityClass, Object source, Insert insert, int result) 插入执行之后
已执行完毕,一般只用来记录voidafterInsertBatch(Class<?> entityClass, List<?> sources, Insert insert, int result) 批量插入执行之后
已执行完毕,一般只用来记录
如果原entities包含已赋值自增id和未赋值id两组,则会分开两组执行,调用2次void列表查询执行之后void分页查询执行之后voidafterStream(Class<?> entityClass, Type elementType, Select select, Stream<?> result) stream查询执行之后voidafterUpdate(Class<?> entityClass, Object source, Update update, int result) 更新执行之后
一般只用来记录beforeDelete(Class<?> entityClass, Statement statement) 删除执行之前
语句已生成, 可直接修改语句,或者返回新语句(如伪删除时Delete改Update)void单条查询执行之前,可调整语句,作用于业务参数之后voidbeforeInsert(Class<?> entityClass, Object source, Insert insert) 插入执行之前
此时已经 生成插入语句, 修改实体对象不会改变插入语句,但可以直接修改插入语句voidbeforeInsertBatch(Class<?> entityClass, List<?> sources, Insert insert) 批量插入执行之前
此时已经 生成插入语句, 修改实体对象不会改变插入语句,但可以直接修改插入语句
如果 原entities包含已赋值自增id和未赋值id两组,则会分开两组执行,调用2次voidbeforeList(Class<?> entityClass, Type elementType, Select select) 列表查询执行之前,可调整语句,作用于业务参数之后voidbeforeStream(Class<?> entityClass, Type elementType, Select select) stream查询执行之前,可调整语句,作用于业务参数之后voidbeforeUpdate(Class<?> entityClass, Object source, Update update) 更新执行之前
已生成更新语句, 修改实体类不会作用于语句, 但可直接修改语句删除前置处理,先于before单条查询前置处理void插入前置处理,先于before
可在此处进行一些实体类额外修改操作, 如id注入,审计字段等voidpreInsertBatch(Class<?> entityClass, List<?> vos) 批量插入前置处理,先于before
可在此处进行一些实体类额外修改操作, 如id注入,审计字段等列表查询前置处理void分页查询前置处理
分页查询内部调用count(属于get)和list(属于collection)实现,所以无单独的before,此处仅用于拦截pageable或记录日志stream查询前置处理更新前置处理, 在before之前
可在此处进行一些实体类额外修改操作, 如审计字段等
-
Constructor Details
-
DaoInterceptors
-
-
Method Details
-
afterDelete
Description copied from interface:DaoInterceptor删除之后- Specified by:
afterDeletein interfaceDaoInterceptor- Parameters:
entityClass- 实体类statement- 语句result- 结果,变动条数(>=0)或错误代码
-
afterGet
Description copied from interface:DaoInterceptor单条查询执行之后- Specified by:
afterGetin interfaceDaoInterceptor- Parameters:
entityClass- 实体类,仅做记录resultType- 结果类型,仅用作记录,如果是optional查询,resultType只是其包裹类型,不带有Optionalselect- 查询语句,仅用作记录result- 查询结果
-
afterInsert
Description copied from interface:DaoInterceptor插入执行之后
已执行完毕,一般只用来记录- Specified by:
afterInsertin interfaceDaoInterceptor- Parameters:
entityClass- 实体类source- 值对象,一般为实体insert- 插入语句result- 结果,变动条数(>=0)或错误代码
-
afterInsertBatch
Description copied from interface:DaoInterceptor批量插入执行之后
已执行完毕,一般只用来记录
如果原entities包含已赋值自增id和未赋值id两组,则会分开两组执行,调用2次- Specified by:
afterInsertBatchin interfaceDaoInterceptor- Parameters:
entityClass- 实体类sources- 值对象,一般为实体insert- 插入语句result- 结果,变动条数(>=0)或错误代码
-
afterList
Description copied from interface:DaoInterceptor列表查询执行之后- Specified by:
afterListin interfaceDaoInterceptor- Parameters:
entityClass- 实体类,仅做记录elementType- 元素类型,仅做记录select- 查询语句,仅用作记录result- 结果
-
afterPage
Description copied from interface:DaoInterceptor分页查询执行之后- Specified by:
afterPagein interfaceDaoInterceptor- Parameters:
entityClass- 实体类,仅做记录elementType- 元素类型,仅做记录pageable- 分页result- 结果
-
afterStream
Description copied from interface:DaoInterceptorstream查询执行之后- Specified by:
afterStreamin interfaceDaoInterceptor- Parameters:
entityClass- 实体类,仅做记录elementType- 元素类型,仅做记录select- 查询语句,仅用作记录result- 结果
-
afterUpdate
Description copied from interface:DaoInterceptor更新执行之后
一般只用来记录- Specified by:
afterUpdatein interfaceDaoInterceptor- Parameters:
entityClass- 实体类source- 要更新的实体,可能为空(如直接setter方式修改某列为null)update- 更新语句result- 结果,变动条数(>=0)或错误代码
-
beforeDelete
Description copied from interface:DaoInterceptor删除执行之前
语句已生成, 可直接修改语句,或者返回新语句(如伪删除时Delete改Update)- Specified by:
beforeDeletein interfaceDaoInterceptor- Parameters:
entityClass- 实体类statement- 语句(可能已被前置拦截器修改为其他语句,如Update)- Returns:
- 语句,可以修改为其他语句,比如伪删除会将Delete改为update
-
beforeGet
Description copied from interface:DaoInterceptor单条查询执行之前,可调整语句,作用于业务参数之后- Specified by:
beforeGetin interfaceDaoInterceptor- Parameters:
entityClass- 实体类,仅做记录resultType- 结果类型,仅做记录, 调整不再作用语句,如果是optional查询,resultType只是其包裹类型,不带有Optionalselect- 查询语句,可自行调整
-
beforeInsert
Description copied from interface:DaoInterceptor插入执行之前
此时已经 生成插入语句, 修改实体对象不会改变插入语句,但可以直接修改插入语句- Specified by:
beforeInsertin interfaceDaoInterceptor- Parameters:
entityClass- 实体类source- 值对象,一般为实体insert- 插入语句
-
beforeInsertBatch
Description copied from interface:DaoInterceptor批量插入执行之前
此时已经 生成插入语句, 修改实体对象不会改变插入语句,但可以直接修改插入语句
如果 原entities包含已赋值自增id和未赋值id两组,则会分开两组执行,调用2次- Specified by:
beforeInsertBatchin interfaceDaoInterceptor- Parameters:
entityClass- 实体类sources- 值对象,一般为实体insert- 插入语句
-
beforeList
Description copied from interface:DaoInterceptor列表查询执行之前,可调整语句,作用于业务参数之后- Specified by:
beforeListin interfaceDaoInterceptor- Parameters:
entityClass- 实体类,仅做记录elementType- 元素类型,仅做记录select- 查询语句,可自行调整
-
beforeStream
Description copied from interface:DaoInterceptorstream查询执行之前,可调整语句,作用于业务参数之后- Specified by:
beforeStreamin interfaceDaoInterceptor- Parameters:
entityClass- 实体类,仅做记录elementType- 元素类型,仅做记录select- 查询语句,可自行调整
-
beforeUpdate
Description copied from interface:DaoInterceptor更新执行之前
已生成更新语句, 修改实体类不会作用于语句, 但可直接修改语句- Specified by:
beforeUpdatein interfaceDaoInterceptor- Parameters:
entityClass- 实体类source- 要更新的实体,可能为空(如直接setter方式修改某列为null)update- 更新语句,可自行调整
-
preDelete
Description copied from interface:DaoInterceptor删除前置处理,先于before- Specified by:
preDeletein interfaceDaoInterceptor- Parameters:
entityClass- 实体类- Returns:
- 删除语句自定义, 无需操作可以返回空操作或null,一般仅用于添加前置条件(早于dao其他参数传入的条件)
-
preGet
Description copied from interface:DaoInterceptor单条查询前置处理- Specified by:
preGetin interfaceDaoInterceptor- Parameters:
entityClass- 实体类,仅做记录resultType- 结果类型,仅做记录,如果是optional查询,resultType只是其包裹类型,不带有Optional- Returns:
- 无需自定义查询可返回null, 若需则返回, 会先于业务参数作用于语句
-
preInsert
Description copied from interface:DaoInterceptor插入前置处理,先于before
可在此处进行一些实体类额外修改操作, 如id注入,审计字段等- Specified by:
preInsertin interfaceDaoInterceptor- Parameters:
entityClass- 实体类source- 值对象,一般为实体
-
preInsertBatch
Description copied from interface:DaoInterceptor批量插入前置处理,先于before
可在此处进行一些实体类额外修改操作, 如id注入,审计字段等- Specified by:
preInsertBatchin interfaceDaoInterceptor- Parameters:
entityClass- 实体类vos- 值对象,一般为实体
-
preList
Description copied from interface:DaoInterceptor列表查询前置处理- Specified by:
preListin interfaceDaoInterceptor- Parameters:
entityClass- 实体类,仅做记录elementType- 元素类型,仅做记录- Returns:
- 无需自定义查询可返回null, 若需则返回, 会先于业务参数作用于语句
-
prePage
Description copied from interface:DaoInterceptor分页查询前置处理
分页查询内部调用count(属于get)和list(属于collection)实现,所以无单独的before,此处仅用于拦截pageable或记录日志- Specified by:
prePagein interfaceDaoInterceptor- Parameters:
entityClass- 实体类,仅做记录elementType- 元素类型,仅做记录pageable- 分页
-
preStream
Description copied from interface:DaoInterceptorstream查询前置处理- Specified by:
preStreamin interfaceDaoInterceptor- Parameters:
entityClass- 实体类,仅做记录elementType- 元素类型,仅做记录- Returns:
- 无需自定义查询可返回null, 若需则返回, 会先于业务参数作用于语句
-
preUpdate
Description copied from interface:DaoInterceptor更新前置处理, 在before之前
可在此处进行一些实体类额外修改操作, 如审计字段等- Specified by:
preUpdatein interfaceDaoInterceptor- Parameters:
entityClass- 实体类source- 要更新的值对象|实体,可能为空(如直接setter方式)- Returns:
- 更新自定义
-