List of usage examples for org.hibernate.event.spi SaveOrUpdateEvent getObject
public Object getObject()
From source file:org.egov.infra.config.persistence.event.listener.HibernateEventListener.java
License:Open Source License
/** * For new objects that are created, this event is used to set the audit properties. This is done here instead of the * pre-insert event because Hibernate checks for not-null constraints before the pre-update and pre-insert are fired. *///from www . j a v a2 s . co m @Override public void onSaveOrUpdate(final SaveOrUpdateEvent event) { final EventSource session = event.getSession(); final Object object = event.getObject(); if (object instanceof BaseModel && !session.getPersistenceContext().reassociateIfUninitializedProxy(object)) { // only update the entity if it has been changed final Date currentDate = new Date(); final User usr = session.load(User.class, ApplicationThreadLocals.getUserId()); final BaseModel entity = (BaseModel) session.getPersistenceContext().unproxyAndReassociate(object); if (entity.getCreatedBy() == null) { entity.setCreatedDate(currentDate); entity.setCreatedBy(usr); entity.setModifiedBy(usr); entity.setModifiedDate(currentDate); } } else if (object instanceof Auditable && !session.getPersistenceContext().reassociateIfUninitializedProxy(object)) { final User usr = session.load(User.class, ApplicationThreadLocals.getUserId()); final AbstractAuditable entity = (AbstractAuditable) session.getPersistenceContext() .unproxyAndReassociate(object); if (entity.getCreatedBy() == null) { final Date currentDate = new Date(); entity.setCreatedDate(currentDate); entity.setCreatedBy(usr); entity.setLastModifiedBy(usr); entity.setLastModifiedDate(currentDate); } } }
From source file:org.grails.orm.hibernate.event.listener.HibernateEventListener.java
License:Apache License
public void onSaveOrUpdate(SaveOrUpdateEvent event) throws HibernateException { Object entity = event.getObject(); if (entity != null) { ClosureEventListener eventListener; EventSource session = event.getSession(); eventListener = findEventListener(entity, (SessionFactoryImplementor) session.getSessionFactory()); if (eventListener != null) { eventListener.onSaveOrUpdate(event); }//from w ww . j av a 2 s. co m } }
From source file:org.grails.orm.hibernate.EventTriggeringInterceptor.java
License:Apache License
public void onSaveOrUpdate(SaveOrUpdateEvent event) throws HibernateException { ClosureEventListener eventListener = findEventListener(event.getObject()); if (eventListener != null) { eventListener.onSaveOrUpdate(event); }//from ww w . j a va 2 s . c o m }
From source file:org.openeos.hibernate.internal.observers.DAOListenerManager.java
License:Apache License
@SuppressWarnings("unchecked") private void fireSaveOrUpdateEvent(SaveOrUpdateEvent event, boolean before) { org.openeos.dao.SaveOrUpdateEvent<Object> ourEvent = new org.openeos.dao.SaveOrUpdateEvent<Object>( event.getSession(), event.getObject(), event.getResultId()); try {/*from w w w.j av a 2s . c o m*/ for (SaveOrUpdateListener<Object> listener : getListenerByObject(SaveOrUpdateListener.class, event.getObject())) { LOG.debug( MessageFormat.format("Calling SaveOrUpdateListener. Object: {0} Before: {1} Listener: {2}", event.getObject().toString(), Boolean.toString(before), listener.toString())); if (before) { listener.beforeSaveOrUpdate(ourEvent); } else { listener.afterSaveOrUpdate(ourEvent); } } } catch (UserException ex) { // TODO throw new HibernateException(ex); } }