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

📄 historyeventlistener.java

📁 anewssystem新闻发布系统集成使用了spring hibernate freemarker EXTJS等开源框架 可以作为学习参考
💻 JAVA
字号:
package anni.core.dao.audit;

import java.util.Date;

import org.hibernate.event.PostUpdateEvent;
import org.hibernate.event.PostUpdateEventListener;


/**
 * 侦听领域对象的PostUpdate事件,如果此对象实现了HistorizableEntity接口,将记录其修改前后的数据.
 * (todo:此类未完成)
 *
 * @author calvin
 */
public class HistoryEventListener implements PostUpdateEventListener {
    public void onPostUpdate(PostUpdateEvent event) {
        if (event.getEntity() instanceof HistorizableEntity) {
            Object id = event.getId();
            String type = event.getEntity().getClass().getSimpleName();
            HistorizableEntity he = (HistorizableEntity) event.getEntity();
            IUser user = he.getModifyUser();
            String loginid = null;

            if (user != null) {
                loginid = user.getLoginid();
            }

            Date date = he.getModifyTime();

            Object[] oldValues = event.getOldState();
            Object[] newValues = event.getState();

            for (int i = 0; i < oldValues.length; i++) {
                /*   if ((oldValues[i] != null && !oldValues[i].equals(newValues[i])) || (oldValues[i] == null && newValues[i] != null)) {
                    //todo:参考Compass的Hibernate Event listener,get Property Name, fix the lazy load bug(如果lazy load证明此对象未改动) ,insert int database
                    System.out.println(id + type + user + date + oldValues[i] + newValues[i]);
                }*/
            }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -