/** * Prepares the save call using the given requested id. * @param entity The entity to be saved. * @param requestedId The id to which to associate the entity. * @param source The session which is the source of this save event. * @return The id used to save the entity. * @throws HibernateException */ protected Serializable saveWithRequestedId( Object entity, Serializable requestedId, String entityName, Object anything, SessionImplementor source) throws HibernateException { return performSave( entity, requestedId, source.getEntityPersister(entityName, entity), false, anything, source ); }
public Serializable generate(SessionImplementor session, Object obj) throws HibernateException { if (obj instanceof PersistentCollection) throw new IdentifierGenerationException( "Illegal use of assigned id generation for a toplevel collection" ); final Serializable id = session.getEntityPersister( entityName, obj ).getIdentifier( obj, session.getEntityMode() ); if (id==null) throw new IdentifierGenerationException( "ids for this class must be manually assigned before calling save(): " + obj.getClass().getName() ); return id; }
public Serializable generate(SessionImplementor session, Object obj) throws HibernateException { final Serializable id = session.getEntityPersister( entityName, obj ) //TODO: cache the persister, this shows up in yourkit .getIdentifier( obj, session.getEntityMode() ); if (id==null) { throw new IdentifierGenerationException( "ids for this class must be manually assigned before calling save(): " + entityName ); } return id; }
protected Object entityIsPersistent(MergeEvent event, Map copyCache) { log.trace("ignoring persistent instance"); //TODO: check that entry.getIdentifier().equals(requestedId) final Object entity = event.getEntity(); final SessionImplementor source = event.getSession(); final EntityPersister persister = source.getEntityPersister( event.getEntityName(), entity ); copyCache.put(entity, entity); //before cascade! cascadeOnMerge(event, persister, entity, copyCache); copyValues(persister, entity, entity, source, copyCache); return entity; }
protected void entityIsPersistent(PersistEvent event, Map createCache) { log.trace("ignoring persistent instance"); final SessionImplementor 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 ) { //TODO: merge into one method! cascadeBeforeSave(source, persister, entity, createCache); cascadeAfterSave(source, persister, entity, createCache); } }
EntityPersister persister = session.getEntityPersister(entityName, entity); isUnsaved = persister.isTransient(entity, session); if (isUnsaved!=null) return isUnsaved.booleanValue();
EntityPersister persister = session.getEntityPersister(entityName, entity); isUnsaved = persister.isTransient(entity, session); if (isUnsaved!=null) return isUnsaved.booleanValue();
private static EntityKey getOptionalObjectKey(QueryParameters queryParameters, SessionImplementor session) { final Object optionalObject = queryParameters.getOptionalObject(); final Serializable optionalId = queryParameters.getOptionalId(); final String optionalEntityName = queryParameters.getOptionalEntityName(); if ( optionalObject != null && optionalEntityName != null ) { return new EntityKey( optionalId, session.getEntityPersister( optionalEntityName, optionalObject ), session.getEntityMode() ); } else { return null; } }
throws HibernateException { EntityPersister persister = source.getEntityPersister(entityName, entity);
private static EntityKey getOptionalObjectKey(QueryParameters queryParameters, SessionImplementor session) { final Object optionalObject = queryParameters.getOptionalObject(); final Serializable optionalId = queryParameters.getOptionalId(); final String optionalEntityName = queryParameters.getOptionalEntityName(); if ( optionalObject != null && optionalEntityName != null ) { return new EntityKey( optionalId, session.getEntityPersister( optionalEntityName, optionalObject ), session.getEntityMode() ); } else { return null; } }
); id = session.getEntityPersister(entityName, object).getIdentifier( object, session.getEntityMode() );
); id = session.getEntityPersister( entityName, object ).getIdentifier( object, session.getEntityMode() );
final SessionImplementor source = event.getSession(); final EntityPersister persister = source.getEntityPersister( event.getEntityName(), entity ); final String entityName = persister.getEntityName();
/** * Hibernate 3.1 implementation of ID transferral. */ @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.getEntityMode()); // Set id on original object (which remains detached). persister.setIdentifier(event.getOriginal(), id, session.getEntityMode()); }
/** * Handle the given update event. * * @param event The update event to be handled. * @throws HibernateException */ protected void entityIsDetached(SaveOrUpdateEvent event) throws HibernateException { log.trace("updating detached instance"); if ( event.getSession().getPersistenceContext().isEntryFor( event.getEntity() ) ) { //TODO: assertion only, could be optimized away throw new AssertionFailure("entity was persistent"); } Object entity = event.getEntity(); EntityPersister persister = event.getSession().getEntityPersister( event.getEntityName(), entity ); event.setRequestedId( getUpdateId( entity, persister, event.getRequestedId(), event.getSession().getEntityMode() ) ); performUpdate(event, entity, persister); }
persister = source.getEntityPersister( null, event.getInstanceToLoad() ); //the load() which takes an entity does not pass an entityName event.setEntityClassName( event.getInstanceToLoad().getClass().getName() );
final SessionImplementor source = event.getSession(); final EntityPersister persister = source.getEntityPersister( event.getEntityName(), entity ); final String entityName = persister.getEntityName();
final EntityPersister persister = source.getEntityPersister( event.getEntityName(), entity ); final Serializable id = persister.getIdentifier( entity, source.getEntityMode() ); if ( !ForeignKeys.isNotTransient( event.getEntityName(), entity, Boolean.FALSE, source ) ) {
final EntityPersister persister = source.getEntityPersister( event.getEntityName(), entity ); final Serializable id = persister.getIdentifier( entity, source.getEntityMode() ); if ( !ForeignKeys.isNotTransient( event.getEntityName(), entity, Boolean.FALSE, source ) ) {
persister = source.getEntityPersister(null, object); //refresh() does not pass an entityName id = persister.getIdentifier( object, event.getSession().getEntityMode() ); if ( log.isTraceEnabled() ) {