Example usage for org.hibernate.event.spi MergeEvent getSession

List of usage examples for org.hibernate.event.spi MergeEvent getSession

Introduction

In this page you can find the example usage for org.hibernate.event.spi MergeEvent getSession.

Prototype

public final EventSource getSession() 

Source Link

Document

Returns the session event source for this event.

Usage

From source file:it.cilea.core.spring.dao.hibernate.IdTransferringMergeEventListener.java

License:Apache License

/**
 * Hibernate 3.1 implementation of ID transferral.
 *///from   w ww  .java 2 s  . co  m
@Override
protected void entityIsTransient(MergeEvent event, Map copyCache) {
    super.entityIsTransient(event, copyCache);
    SessionImplementor session = event.getSession();
    EntityPersister persister = session.getEntityPersister(event.getEntityName(), event.getEntity());
    // Extract id from merged copy (which is currently registered with
    // Session).
    Serializable id = persister.getIdentifier(event.getResult(), session);
    // Set id on original object (which remains detached).
    persister.setIdentifier(event.getOriginal(), id, session);
}

From source file:org.granite.tide.hibernate4.HibernateDataChangeMergeListener.java

License:Open Source License

@Override
public void onMerge(MergeEvent event) throws HibernateException {
    if (event.getOriginal() instanceof ChangeSetProxy || event.getOriginal() instanceof ChangeSet) {
        ChangeSet changeSet = event.getOriginal() instanceof ChangeSet ? (ChangeSet) event.getOriginal()
                : ((ChangeSetProxy) event.getOriginal()).getChangeSetProxyData();
        Object result = new ChangeSetApplier(new HibernatePersistenceAdapter(event.getSession()))
                .applyChanges(changeSet)[0];
        event.setResult(result);/*from w  w  w. j  av  a 2s  .  co m*/
        return;
    }

    try {
        wrappedListener.onMerge(event);
    } catch (StaleObjectStateException e) {
        HibernateOptimisticLockException.rethrowOptimisticLockException(event.getSession(), e);
    }
}

From source file:org.granite.tide.hibernate4.HibernateDataChangeMergeListener.java

License:Open Source License

@SuppressWarnings("rawtypes")
@Override/*from w  w w. j  av a 2  s  .  co m*/
public void onMerge(MergeEvent event, Map copiedAlready) throws HibernateException {
    if (event.getOriginal() instanceof ChangeSetProxy || event.getOriginal() instanceof ChangeSet) {
        ChangeSet changeSet = event.getOriginal() instanceof ChangeSet ? (ChangeSet) event.getOriginal()
                : ((ChangeSetProxy) event.getOriginal()).getChangeSetProxyData();
        Object result = new ChangeSetApplier(new HibernatePersistenceAdapter(event.getSession()))
                .applyChanges(changeSet)[0];
        event.setResult(result);
        return;
    }

    try {
        wrappedListener.onMerge(event, copiedAlready);
    } catch (StaleObjectStateException e) {
        HibernateOptimisticLockException.rethrowOptimisticLockException(event.getSession(), e);
    }
}

From source file:org.granite.tide.hibernate4.HibernateMergeListener.java

License:Open Source License

@Override
public void onMerge(MergeEvent event) throws HibernateException {
    try {//from  www.  ja  v  a2 s.  com
        super.onMerge(event);
    } catch (StaleObjectStateException e) {
        HibernateOptimisticLockException.rethrowOptimisticLockException(event.getSession(), e);
    }
}

From source file:org.granite.tide.hibernate4.HibernateMergeListener.java

License:Open Source License

@SuppressWarnings("rawtypes")
@Override//  ww  w.  j a  va2s. c om
public void onMerge(MergeEvent event, Map copiedAlready) throws HibernateException {
    try {
        super.onMerge(event, copiedAlready);
    } catch (StaleObjectStateException e) {
        HibernateOptimisticLockException.rethrowOptimisticLockException(event.getSession(), e);
    }
}