package com.norteksoft.product.orm.hibernate; import java.util.Date; import org.hibernate.event.SaveOrUpdateEvent; import org.hibernate.event.def.DefaultSaveOrUpdateEventListener; import org.springframework.stereotype.Service; import com.norteksoft.product.orm.IdEntity; import com.norteksoft.product.util.ContextUtils; import flex.messaging.util.StringUtils; @Service public class SaveOrUpdateListener extends DefaultSaveOrUpdateEventListener { private static final long serialVersionUID = 3175703536757344524L; @Override public void onSaveOrUpdate(SaveOrUpdateEvent event) { Object obj = event.getObject(); if(obj instanceof IdEntity){ IdEntity entity = (IdEntity) obj; if(entity.getId() == null){ setEntityCreatorInfo(entity); }else{ setEntityModifierInfo(entity); } } super.onSaveOrUpdate(event); } private void setEntityCreatorInfo(IdEntity entity){ if(entity.getCompanyId()==null){ entity.setCompanyId(ContextUtils.getCompanyId()); } if(StringUtils.isEmpty(entity.getCreator())){ entity.setCreator(ContextUtils.getLoginName()); } if(StringUtils.isEmpty(entity.getCreatorName())){ entity.setCreatorName(ContextUtils.getUserName()); } entity.setCreatedTime(new Date()); } private void setEntityModifierInfo(IdEntity entity){ entity.setModifier(ContextUtils.getLoginName()); entity.setModifierName(ContextUtils.getUserName()); entity.setModifiedTime(new Date()); } }