⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 entitylistenerlogger.java

📁 jboss4 + Mysql +ejb3.0 EJB3 简单例子
💻 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 + -