📄 entitylistenerlogger.java
字号:
/**
* Copyright (c)上海烟草(集团)公司与上海康时信息系统有限公司。
*/
package com.myejb;
import javax.persistence.PostLoad;
import javax.persistence.PostPersist;
import javax.persistence.PostRemove;
import javax.persistence.PostUpdate;
import javax.persistence.PrePersist;
import javax.persistence.PreRemove;
import javax.persistence.PreUpdate;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* 实体事件日志类
* @author xywang
* @since 2009-2-18
* @version 1.0
*
*/
public class EntityListenerLogger{
private Log log = LogFactory.getLog(this.getClass());
@PostLoad // 在执行EntityManager.find()或getreference()方法载入一个实体后,执行JPQL查询过后,EntityManager.refresh()方法调用后
public void postLoad(Object entity){
logPrintln(entity,"@PostLoad");
}
@PreRemove // 实体从数据库删除之前触发,即调用EntityManager.remove()方法或级联删除时发生。此时数据还没有从数据库中删除
public void preRemove(Object entity){
logPrintln(entity,"@PreRemove");
}
@PostRemove // 实体已经从数据库中删除后触发。
public void postRemove(Object entity){
logPrintln(entity,"@PostRemove");
}
@PreUpdate // 实体的状态同步到数据库之前触发。此时数据还没有真实更新到数据库
public void preUpdate(Object entity){
logPrintln(entity,"@PreUpdate");
}
@PostUpdate // 实体的状态同步到数据库后触发。即容器进行flush时发生
public void postUpdate(Object entity){
logPrintln(entity,"@PostUpdate");
}
@PrePersist // 在EntityManager.persist()方法后立刻发生,此时的数据还没有插入数据库
public void preInsert(Object entity){
logPrintln(entity,"@PrePersist");
}
@PostPersist // 指数据已插入数据库后发生(事务未提交前的已插入)
public void postInsert(Object entity){
logPrintln(entity,"@PostPersist");
}
private void logPrintln(Object entity,String method){
log.info("实体{"+entity.getClass().getName()+"}的"+method+"事件发生");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -