2023年2月15日
jpa增加一个拦截器
参考:(34条消息) Hibernate拦截器字段加密解密_我是大大大大师兄的博客-CSDN博客_hibernate 拦截器
1.增加一个jpa的拦截器
2.参考:https://blog.csdn.net/C_tongxue/article/details/124621259
3.nacos 增加配置如下
spring:
jpa:
properties:
hibernate:
session_factory:
interceptor: xxx.xxx.xxx
代码如下:
package com.xxx.xxx; import com.alibaba.fastjson.JSON; import lombok.extern.slf4j.Slf4j; import org.hibernate.EmptyInterceptor; import org.hibernate.type.Type; import org.springframework.stereotype.Component; import java.io.Serializable; /** * YqInterceptor * * @author zeroheart * @since 2023/2/15 */ @Component @Slf4j public class YqInterceptor extends EmptyInterceptor { /** * 更新时调用 * * @param entity 实体类 * @param id 主键 * @param currentState 当前实体类对应的值 * @param previousState 修改前实体类对应的值 * @param propertyNames 字段名 * @param types 实体类每个属性类型对应hibernate的类型 * @return true | false true才会修改数据 */ @Override public boolean onFlushDirty(Object entity, Serializable id, Object[] currentState, Object[] previousState, String[] propertyNames, Type[] types) { log.error("onFlushDirty"); log.error("propertyNames:"+ JSON.toJSONString(propertyNames)); log.error("currentState:"+JSON.toJSONString(currentState)); log.error("previousState:"+JSON.toJSONString(previousState)); return super.onFlushDirty(entity, id, currentState, previousState, propertyNames, types); } /** * 加载时调用 * * @param entity 实体类 * @param id 主键 * @param state 实体类对应的值 * @param propertyNames 字段名 * @param types 实体类每个属性类型对应hibernate的类型 * @return true | false true才会修改数据 */ @Override public boolean onLoad(Object entity, Serializable id, Object[] state, String[] propertyNames, Type[] types) { log.error("onLoad"); log.error("propertyNames:"+JSON.toJSONString(propertyNames)); log.error("state:"+JSON.toJSONString(state)); return super.onLoad(entity, id, state, propertyNames, types); } /** * 保存时调用 * * @param entity 实体类 * @param id 主键 * @param state 实体类对应的值 * @param propertyNames 字段名 * @param types 实体类每个属性类型对应hibernate的类型 * @return true | false true才会修改数据 */ @Override public boolean onSave(Object entity, Serializable id, Object[] state, String[] propertyNames, Type[] types) { log.error("onSave"); log.error("propertyNames:"+JSON.toJSONString(propertyNames)); log.error("state:"+JSON.toJSONString(state)); return super.onSave(entity, id, state, propertyNames, types); } }