Example usage for org.hibernate.event.spi SaveOrUpdateEvent getObject

List of usage examples for org.hibernate.event.spi SaveOrUpdateEvent getObject

Introduction

In this page you can find the example usage for org.hibernate.event.spi SaveOrUpdateEvent getObject.

Prototype

public Object getObject() 

Source Link

Usage

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);
    }

}