List of usage examples for org.hibernate.event.spi SaveOrUpdateEvent getSession
public final EventSource getSession()
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 ww w. j a v a 2s . c o 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 w w. j av a2 s .co m } }
From source file:org.granite.tide.hibernate4.HibernateSaveOrUpdateListener.java
License:Open Source License
@Override public void onSaveOrUpdate(SaveOrUpdateEvent event) throws HibernateException { try {/* w w w. j a va 2 s . c o m*/ super.onSaveOrUpdate(event); } catch (StaleObjectStateException e) { HibernateOptimisticLockException.rethrowOptimisticLockException(event.getSession(), e); } }
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 {// w w w . j a va2 s . 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); } }