protected static Serializable getLoadedOwnerIdOrNull( PersistentCollection collection, EventSource source ) { return source.getPersistenceContext().getLoadedCollectionOwnerIdOrNull( collection ); }
protected static Object getLoadedOwnerOrNull( PersistentCollection collection, EventSource source ) { return source.getPersistenceContext().getLoadedCollectionOwnerOrNull( collection ); }
Object processEntity(Object value, EntityType entityType) throws HibernateException { if (value!=null) { getSession().getPersistenceContext().reassociateIfUninitializedProxy(value); // if it is an initialized proxy, let cascade // handle it later on } return null; }
private boolean existsInDatabase(Object entity, EventSource source, EntityPersister persister) { EntityEntry entry = source.getPersistenceContext().getEntry( entity ); if ( entry == null ) { Serializable id = persister.getIdentifier( entity, source ); if ( id != null ) { final EntityKey key = source.generateEntityKey( id, persister ); final Object managedEntity = source.getPersistenceContext().getEntity( key ); entry = source.getPersistenceContext().getEntry( managedEntity ); } } return entry != null && entry.isExistsInDatabase(); }
private void cascadeOnFlush(EventSource session, EntityPersister persister, Object object, Object anything) throws HibernateException { session.getPersistenceContext().incrementCascadeLevel(); try { Cascade.cascade( getCascadingAction(), CascadePoint.BEFORE_FLUSH, session, persister, object, anything ); } finally { session.getPersistenceContext().decrementCascadeLevel(); } }
protected static CollectionPersister getLoadedCollectionPersister( PersistentCollection collection, EventSource source ) { CollectionEntry ce = source.getPersistenceContext().getCollectionEntry( collection ); return ( ce == null ? null : ce.getLoadedPersister() ); }
protected static Serializable getOwnerIdOrNull( Object owner, EventSource source ) { EntityEntry ownerEntry = source.getPersistenceContext().getEntry( owner ); return ( ownerEntry == null ? null : ownerEntry.getId() ); }
private boolean flushMightBeNeeded(final EventSource source) { return !source.getHibernateFlushMode().lessThan( FlushMode.AUTO ) && source.getDontFlushFromFind() == 0 && ( source.getPersistenceContext().getNumberOfManagedEntities() > 0 || source.getPersistenceContext().getCollectionEntries().size() > 0 ); } }
private void handlePostUpdate(Object entity, EventSource source) { EntityEntry entry = source.getPersistenceContext().getEntry( entity ); // mimic the preUpdate filter if ( Status.DELETED != entry.getStatus()) { callbackRegistry.postUpdate(entity); } }
private void cascadeOnLock(LockEvent event, EntityPersister persister, Object entity) { EventSource source = event.getSession(); source.getPersistenceContext().incrementCascadeLevel(); try { Cascade.cascade( CascadingActions.LOCK, CascadePoint.AFTER_LOCK, source, persister, entity, event.getLockOptions() ); } finally { source.getPersistenceContext().decrementCascadeLevel(); } }
protected final CollectionEntry getCollectionEntry(AbstractCollectionEvent event) { return event.getSession().getPersistenceContext().getCollectionEntry( event.getCollection() ); }
private boolean isInManagedState(Object child, EventSource session) { EntityEntry entry = session.getPersistenceContext().getEntry( child ); return entry != null && ( entry.getStatus() == Status.MANAGED || entry.getStatus() == Status.READ_ONLY || entry.getStatus() == Status.SAVING ); }
private String printEntity(Object entity) { if ( session.getPersistenceContext().getEntry( entity ) != null ) { return MessageHelper.infoString( session.getEntityName( entity ), session.getIdentifier( entity ) ); } // Entity was not found in current persistence context. Use Object#toString() method. return "[" + entity + "]"; } }
public void addEvent(AbstractCollectionEvent event, Listener listener) { CollectionEntry collectionEntry = event.getSession() .getPersistenceContext() .getCollectionEntry(event.getCollection()); Serializable snapshot = collectionEntry.getSnapshot(); log.debug("add Event: " + event.getClass() + "; listener = " + listener.getClass() + "; snapshot = " + snapshot); listenersCalled.add(listener); events.add(event); snapshots.add(snapshot); }
/** * 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 ); } }
@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 ); } }
/** * Attempts to resolve the entity id corresponding to the event's natural id values from the session * * @param event The load event * * @return The entity from the cache, or null. */ protected Serializable resolveFromCache(final ResolveNaturalIdEvent event) { return event.getSession().getPersistenceContext().getNaturalIdHelper().findCachedNaturalIdResolution( event.getEntityPersister(), event.getOrderedNaturalIdValues() ); }
protected static String getAffectedOwnerEntityName(CollectionPersister collectionPersister, Object affectedOwner, EventSource source ) { // collectionPersister should not be null, but we don't want to throw // an exception if it is null String entityName = ( collectionPersister == null ? null : collectionPersister.getOwnerEntityPersister().getEntityName() ); if ( affectedOwner != null ) { EntityEntry ee = source.getPersistenceContext().getEntry( affectedOwner ); if ( ee != null && ee.getEntityName() != null) { entityName = ee.getEntityName(); } } return entityName; }
protected Serializable performSaveOrUpdate(SaveOrUpdateEvent event) { // this implementation is supposed to tolerate incorrect unsaved-value // mappings, for the purpose of backward-compatibility EntityEntry entry = event.getSession().getPersistenceContext().getEntry( event.getEntity() ); if ( entry!=null && entry.getStatus() != Status.DELETED ) { return entityIsPersistent(event); } else { return entityIsTransient(event); } }
protected Serializable performSaveOrUpdate(SaveOrUpdateEvent event) { // this implementation is supposed to tolerate incorrect unsaved-value // mappings, for the purpose of backward-compatibility EntityEntry entry = event.getSession().getPersistenceContext().getEntry( event.getEntity() ); if ( entry!=null ) { if ( entry.getStatus()== Status.DELETED ) { throw new ObjectDeletedException( "deleted instance passed to update()", null, event.getEntityName() ); } else { return entityIsPersistent(event); } } else { entityIsDetached(event); return null; } }