📄 auditloginterceptor.java
字号:
package org.hibernate.auction.persistence.audit;
import net.sf.hibernate.*;
import net.sf.hibernate.type.Type;
import java.io.Serializable;
import java.util.*;
import org.hibernate.auction.model.*;
import org.apache.commons.logging.*;
public class AuditLogInterceptor implements Interceptor {
private static Log log = LogFactory.getLog(AuditLogInterceptor.class);
private Session session;
private Long userId;
private Set inserts = new HashSet();
private Set updates = new HashSet();
public void setSession(Session session) {
this.session=session;
}
public void setUserId(Long userId) {
this.userId=userId;
}
public boolean onSave(Object entity,
Serializable id,
Object[] state,
String[] propertyNames,
Type[] types)
throws CallbackException {
if (entity instanceof Auditable)
inserts.add(entity);
return false;
}
public boolean onFlushDirty(Object entity,
Serializable id,
Object[] currentState,
Object[] previousState,
String[] propertyNames,
Type[] types)
throws CallbackException {
if (entity instanceof Auditable)
updates.add(entity);
return false;
}
public boolean onLoad(Object o, Serializable serializable, Object[] objects, String[] strings, Type[] types) throws CallbackException {
return false;
}
public void onDelete(Object o, Serializable serializable, Object[] objects, String[] strings, Type[] types) throws CallbackException {
}
public void preFlush(Iterator iterator) throws CallbackException {
}
public void postFlush(Iterator iterator) throws CallbackException {
try {
for (Iterator it = inserts.iterator(); it.hasNext();) {
Auditable entity = (Auditable) it.next();
log.debug("Intercepted creation of : " + entity);
AuditLog.logEvent("create",
entity,
userId,
session.connection());
}
for (Iterator it = updates.iterator(); it.hasNext();) {
Auditable entity = (Auditable) it.next();
log.debug("Intercepted modification of : " + entity);
AuditLog.logEvent("update",
entity,
userId,
session.connection());
}
} catch (HibernateException ex) {
throw new CallbackException(ex);
} finally {
inserts.clear();
updates.clear();
}
}
public Boolean isUnsaved(Object o) {
return null;
}
public int[] findDirty(Object o, Serializable serializable, Object[] objects, Object[] objects1, String[] strings, Type[] types) {
return null;
}
public Object instantiate(Class aClass, Serializable serializable) throws CallbackException {
return null;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -