Package org.hibernate.engine.spi

Examples of org.hibernate.engine.spi.EntityKey


   * <p/>
   * {@inheritDoc}
   */
  @Override
  public Object[] getDatabaseSnapshot(Serializable id, EntityPersister persister) throws HibernateException {
    final EntityKey key = session.generateEntityKey( id, persister );
    final Object cached = entitySnapshotsByKey.get( key );
    if ( cached != null ) {
      return cached == NO_ROW ? null : (Object[]) cached;
    }
    else {
View Full Code Here


   * @param proxy The proxy to reassociate.
   */
  private void reassociateProxy(LazyInitializer li, HibernateProxy proxy) {
    if ( li.getSession() != this.getSession() ) {
      final EntityPersister persister = session.getFactory().getEntityPersister( li.getEntityName() );
      final EntityKey key = session.generateEntityKey( li.getIdentifier(), persister );
        // any earlier proxy takes precedence
      proxiesByKey.putIfAbsent( key, proxy );
      proxy.getHibernateLazyInitializer().setSession( session );
    }
  }
View Full Code Here

  public void replaceDelayedEntityIdentityInsertKeys(EntityKey oldKey, Serializable generatedId) {
    final Object entity = entitiesByKey.remove( oldKey );
    final EntityEntry oldEntry = entityEntryContext.removeEntityEntry( entity );
    parentsByChild.clear();

    final EntityKey newKey = session.generateEntityKey( generatedId, oldEntry.getPersister() );
    addEntity( newKey, entity );
    addEntry(
        entity,
        oldEntry.getStatus(),
        oldEntry.getLoadedState(),
View Full Code Here

          ConcurrentReferenceHashMap.ReferenceType.STRONG,
          ConcurrentReferenceHashMap.ReferenceType.WEAK,
          null
      );
      for ( int i = 0; i < count; i++ ) {
        final EntityKey ek = EntityKey.deserialize( ois, sfi );
        final Object proxy = ois.readObject();
        if ( proxy instanceof HibernateProxy ) {
          ( (HibernateProxy) proxy ).getHibernateLazyInitializer().setSession( session );
          rtn.proxiesByKey.put( ek, proxy );
        }
View Full Code Here

            id,
            source.getFactory()
        )
        );
      }
      final EntityKey key = source.generateEntityKey( id, persister );
      if ( source.getPersistenceContext().getEntry( key ) != null ) {
        throw new PersistentObjectException(
            "attempted to refresh transient instance when persistent instance was already associated with the Session: " +
                MessageHelper.infoString( persister, id, source.getFactory() )
        );
      }
    }
    else {
      if ( LOG.isTraceEnabled() ) {
        LOG.tracev(
            "Refreshing ", MessageHelper.infoString(
            e.getPersister(),
            e.getId(),
            source.getFactory()
        )
        );
      }
      if ( !e.isExistsInDatabase() ) {
        throw new UnresolvableObjectException(
            e.getId(),
            "this instance does not yet exist as a row in the database"
        );
      }

      persister = e.getPersister();
      id = e.getId();
    }

    // cascade the refresh prior to refreshing this entity
    refreshedAlready.put( object, object );
    new Cascade( CascadingActions.REFRESH, CascadePoint.BEFORE_REFRESH, source ).cascade(
        persister,
        object,
        refreshedAlready
    );

    if ( e != null ) {
      final EntityKey key = source.generateEntityKey( id, persister );
      source.getPersistenceContext().removeEntity( key );
      if ( persister.hasCollections() ) {
        new EvictVisitor( source ).process( object, persister );
      }
    }
View Full Code Here

          MessageHelper.infoString( persister, id, event.getSession().getFactory() )
      );
    }

    final EventSource source = event.getSession();
    final EntityKey key = source.generateEntityKey( id, persister );

    source.getPersistenceContext().checkUniqueness( key, object );

    //get a snapshot
    Object[] values = persister.getPropertyValues( object );
View Full Code Here

        }
        if ( ownerId == null ) {
          throw new AssertionFailure( "Unable to determine collection owner identifier for orphan-delete processing" );
        }
      }
      final EntityKey key = session.generateEntityKey( ownerId, loadedPersister.getOwnerEntityPersister() );
      final Object owner = persistenceContext.getEntity( key );
      if ( owner == null ) {
        throw new AssertionFailure(
            "collection owner not associated with session: " +
            loadedPersister.getRole()
View Full Code Here

          MessageHelper.infoString( persister, event.getRequestedId(), event.getSession().getFactory() )
      );
    }

    final EventSource source = event.getSession();
    final EntityKey key = source.generateEntityKey( event.getRequestedId(), persister );

    source.getPersistenceContext().checkUniqueness( key, entity );

    if ( invokeUpdateLifecycle( entity, persister, source ) ) {
      reassociate( event, event.getObject(), event.getRequestedId(), persister );
View Full Code Here

        throw new TransientObjectException(
            "the detached instance passed to delete() had a null identifier"
        );
      }

      final EntityKey key = source.generateEntityKey( id, persister );

      persistenceContext.checkUniqueness( key, entity );

      new OnUpdateVisitor( source, id, entity ).process( entity, persister );
View Full Code Here

        propTypes
    );

    // before any callbacks, etc, so subdeletions see that this deletion happened first
    persistenceContext.setEntryStatus( entityEntry, Status.DELETED );
    final EntityKey key = session.generateEntityKey( entityEntry.getId(), persister );

    cascadeBeforeDelete( session, persister, entity, entityEntry, transientEntities );

    new ForeignKeys.Nullifier( entity, true, false, session )
        .nullifyTransientReferences( entityEntry.getDeletedState(), propTypes );
View Full Code Here

TOP

Related Classes of org.hibernate.engine.spi.EntityKey

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.