/** * Handle the given create event. * * @param event The save event to be handled. * @param createCache The copy cache of entity instance to merge/copy instance. */ @SuppressWarnings({"unchecked"}) protected void entityIsTransient(PersistEvent event, Map createCache) { LOG.trace( "Saving transient instance" ); final EventSource source = event.getSession(); final Object entity = source.getPersistenceContext().unproxy( event.getObject() ); if ( createCache.put( entity, entity ) == null ) { saveWithGeneratedId( entity, event.getEntityName(), createCache, source, false ); } }
@Override public void persistOnFlush(String entityName, Object object, Map copiedAlready) throws HibernateException { firePersistOnFlush( copiedAlready, new PersistEvent( entityName, object, this ) ); }
final SessionImplementor source = event.getSession(); final Object object = event.getObject(); if ( event.getEntityName() != null ) { entityName = event.getEntityName(); event.setEntityName( entityName ); throw new PersistentObjectException( "detached entity passed to persist: " + getLoggableName( event.getEntityName(), entity ) ); entityEntry.setStatus( Status.MANAGED ); entityEntry.setDeletedState( null ); event.getSession().getActionQueue().unScheduleDeletion( entityEntry, event.getObject() ); entityIsDeleted( event, createCache ); break; "deleted entity passed to persist", null, getLoggableName( event.getEntityName(), entity ) );
@Override public void onPersist(final PersistEvent event) throws HibernateException { final Object entity = event.getObject(); if(entity instanceof ParentAware) { ParentAware rootAware = (ParentAware) entity; VersionedEntity parent = rootAware.getParent(); if (parent == null) return; if (! (parent instanceof HibernateProxy)) { //we have to do the increment manually parent.incrementVersion(); } Hibernate.initialize(parent); event.getSession().save(parent); if (logger.isDebugEnabled()) { logger.debug("Incrementing {} entity version because a {} child entity has been inserted", parent, entity); } } }
@Override public void onPersist(PersistEvent event) throws HibernateException { try { wrappedListener.onPersist(event); } catch (StaleObjectStateException e) { HibernateOptimisticLockException.rethrowOptimisticLockException(event.getSession(), e); } }
@Override public void onPersist(PersistEvent event) throws HibernateException { final Object entity = event.getObject(); if(entity instanceof RootAware) { RootAware rootAware = (RootAware) entity; Object root = rootAware.root(); event.getSession().lock(root, LockMode.OPTIMISTIC_FORCE_INCREMENT); LOGGER.info("Incrementing {} entity version because a {} child entity has been inserted", root, entity); } }
@SuppressWarnings("rawtypes") @Override public void onPersist(PersistEvent event, Map copiedAlready) throws HibernateException { try { wrappedListener.onPersist(event, copiedAlready); } catch (StaleObjectStateException e) { HibernateOptimisticLockException.rethrowOptimisticLockException(event.getSession(), e); } } }
@SuppressWarnings({"unchecked"}) protected void entityIsPersistent(PersistEvent event, Map createCache) { LOG.trace( "Ignoring persistent instance" ); final EventSource source = event.getSession(); //TODO: check that entry.getIdentifier().equals(requestedId) final Object entity = source.getPersistenceContext().unproxy( event.getObject() ); final EntityPersister persister = source.getEntityPersister( event.getEntityName(), entity ); if ( createCache.put( entity, entity ) == null ) { justCascade( createCache, source, entity, persister ); } }
final SessionImplementor source = event.getSession(); final Object object = event.getObject(); if ( event.getEntityName() != null ) { entityName = event.getEntityName(); event.setEntityName( entityName ); throw new PersistentObjectException( "detached entity passed to persist: " + getLoggableName( event.getEntityName(), entity ) ); entityEntry.setStatus( Status.MANAGED ); entityEntry.setDeletedState( null ); event.getSession().getActionQueue().unScheduleDeletion( entityEntry, event.getObject() ); entityIsDeleted( event, createCache ); break; "deleted entity passed to persist", null, getLoggableName( event.getEntityName(), entity ) );
@Override public void onPersist(PersistEvent event) throws HibernateException { final Object entity = event.getObject(); if(entity instanceof RootAware) { RootAware rootAware = (RootAware) entity; Object root = rootAware.root(); event.getSession().lock(root, LockMode.OPTIMISTIC_FORCE_INCREMENT); LOGGER.info("Incrementing {} entity version because a {} child entity has been inserted", root, entity); } }
@Override public void onPersist(PersistEvent event) throws HibernateException { try { wrappedListener.onPersist(event); } catch (StaleObjectStateException e) { HibernateOptimisticLockException.rethrowOptimisticLockException(event.getSession(), e); } }
public void persistOnFlush(String entityName, Object object) throws HibernateException { firePersistOnFlush( new PersistEvent( entityName, object, this ) ); }
@SuppressWarnings({"unchecked"}) private void entityIsDeleted(PersistEvent event, Map createCache) { final EventSource source = event.getSession(); final Object entity = source.getPersistenceContext().unproxy( event.getObject() ); final EntityPersister persister = source.getEntityPersister( event.getEntityName(), entity ); LOG.tracef( "un-scheduling entity deletion [%s]", MessageHelper.infoString( persister, persister.getIdentifier( entity, source ), source.getFactory() ) ); if ( createCache.put( entity, entity ) == null ) { justCascade( createCache, source, entity, persister ); } } }
final SessionImplementor source = event.getSession(); final Object object = event.getObject(); if ( event.getEntityName() != null ) { entityName = event.getEntityName(); event.setEntityName( entityName ); throw new PersistentObjectException( "detached entity passed to persist: " + getLoggableName( event.getEntityName(), entity ) ); entityEntry.setStatus( Status.MANAGED ); entityEntry.setDeletedState( null ); event.getSession().getActionQueue().unScheduleDeletion( entityEntry, event.getObject() ); entityIsDeleted( event, createCache ); break; "deleted entity passed to persist", null, getLoggableName( event.getEntityName(), entity ) );
@SuppressWarnings("rawtypes") @Override public void onPersist(PersistEvent event, Map copiedAlready) throws HibernateException { try { wrappedListener.onPersist(event, copiedAlready); } catch (StaleObjectStateException e) { HibernateOptimisticLockException.rethrowOptimisticLockException(event.getSession(), e); } } }
@Override public void persist(String entityName, Object object, Map copiedAlready) throws HibernateException { checkOpenOrWaitingForAutoClose(); firePersist( copiedAlready, new PersistEvent( entityName, object, this ) ); }
/** * Handle the given create event. * * @param event The save event to be handled. * @param createCache The copy cache of entity instance to merge/copy instance. */ @SuppressWarnings({"unchecked"}) protected void entityIsTransient(PersistEvent event, Map createCache) { LOG.trace( "Saving transient instance" ); final EventSource source = event.getSession(); final Object entity = source.getPersistenceContext().unproxy( event.getObject() ); if ( createCache.put( entity, entity ) == null ) { saveWithGeneratedId( entity, event.getEntityName(), createCache, source, false ); } }
final SessionImplementor source = event.getSession(); final Object object = event.getObject(); if ( event.getEntityName() != null ) { entityName = event.getEntityName(); event.setEntityName( entityName ); throw new PersistentObjectException( "detached entity passed to persist: " + getLoggableName( event.getEntityName(), entity ) ); entityEntry.setStatus( Status.MANAGED ); entityEntry.setDeletedState( null ); event.getSession().getActionQueue().unScheduleDeletion( entityEntry, event.getObject() ); entityIsDeleted( event, createCache ); break; "deleted entity passed to persist", null, getLoggableName( event.getEntityName(), entity ) );
@Override public void onPersist(PersistEvent event) throws HibernateException { stateManager.onEventBegin( event.getSession() ); try { delegate.onPersist( event ); } finally { stateManager.onEventFinished(); } }
@Override public void persist(Object object) throws HibernateException { checkOpen(); firePersist( new PersistEvent( null, object, this ) ); }