public class MyEntityListener implements AuditEventListener {
public boolean doPostInsert(Object[] state) {
// we always insert the new row regardless.
return true;
}
public boolean doPostUpdate(Object[] oldState, Object[] newState) {
// checks state changes and if only toggle-changed, return false.
return !isToggleOnlyChange( oldState, newState );
}
public boolean doPreRemove(Object[] oldState) {
return true;
}
}
# 1 楼答案
做你要求的事情的唯一现成方法是实施条件审计
文档中描述的条件审核方法要求用户提供自己的事件侦听器,并添加各种if检查,以操纵是否审核行
在这个新的JIRA中,我记录了一个使用类级注释来控制条件审计HHH-11326的新概念
其想法很简单,即不必让用户处理事件侦听器注册,每个实体都可以用一个新的注释进行注释,该注释指向一个类,该类可以作为一种方法,通过简单地返回true/false来验证该事件侦听器是否应该执行其工作
在你的特定情况下,你的听众可能看起来像这样:
其想法是,在更新期间,如果只有切换字段发生了更改,返回false将影响侦听器跳过审核