⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sessionimpl.java

📁 一个Java持久层类库
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
	public void beforeTransactionCompletion(Transaction tx) {		log.trace( "before transaction completion" );		if ( rootSession == null ) {			try {				interceptor.beforeTransactionCompletion(tx);			}			catch (Throwable t) {				log.error("exception in interceptor beforeTransactionCompletion()", t);			}		}	}		public void setAutoClear(boolean enabled) {		errorIfClosed();		autoClear = enabled;	}		/**	 * Check if there is a Hibernate or JTA transaction in progress and, 	 * if there is not, flush if necessary, make sure the connection has 	 * been committed (if it is not in autocommit mode) and run the after 	 * completion processing	 */	public void afterOperation(boolean success) {		if ( !jdbcContext.isTransactionInProgress() ) {			jdbcContext.afterNontransactionalQuery( success );		}	}	public void afterTransactionCompletion(boolean success, Transaction tx) {		log.trace( "after transaction completion" );		persistenceContext.afterTransactionCompletion();		actionQueue.afterTransactionCompletion(success);		if ( rootSession == null && tx != null ) {			try {				interceptor.afterTransactionCompletion(tx);			}			catch (Throwable t) {				log.error("exception in interceptor afterTransactionCompletion()", t);			}		}		if ( autoClear ) {			clear();		}	}	/**	 * clear all the internal collections, just 	 * to help the garbage collector, does not	 * clear anything that is needed during the	 * afterTransactionCompletion() phase	 */	private void cleanup() {		persistenceContext.clear();	}	public LockMode getCurrentLockMode(Object object) throws HibernateException {		errorIfClosed();		checkTransactionSynchStatus();		if ( object == null ) {			throw new NullPointerException( "null object passed to getCurrentLockMode()" );		}		if ( object instanceof HibernateProxy ) {			object = ( (HibernateProxy) object ).getHibernateLazyInitializer().getImplementation(this);			if ( object == null ) {				return LockMode.NONE;			}		}		EntityEntry e = persistenceContext.getEntry(object);		if ( e == null ) {			throw new TransientObjectException( "Given object not associated with the session" );		}		if ( e.getStatus() != Status.MANAGED ) {			throw new ObjectDeletedException( 					"The given object was deleted", 					e.getId(), 					e.getPersister().getEntityName() 				);		}		return e.getLockMode();	}	public Object getEntityUsingInterceptor(EntityKey key) throws HibernateException {		errorIfClosed();		// todo : should this get moved to PersistentContext?		// logically, is PersistentContext the "thing" to which an interceptor gets attached?		final Object result = persistenceContext.getEntity(key);		if ( result == null ) {			final Object newObject = interceptor.getEntity( key.getEntityName(), key.getIdentifier() );			if ( newObject != null ) {				lock( newObject, LockMode.NONE );			}			return newObject;		}		else {			return result;		}	}	// saveOrUpdate() operations ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	public void saveOrUpdate(Object object) throws HibernateException {		saveOrUpdate(null, object);	}	public void saveOrUpdate(String entityName, Object obj) throws HibernateException {		fireSaveOrUpdate( new SaveOrUpdateEvent(entityName, obj, this) );	}	private void fireSaveOrUpdate(SaveOrUpdateEvent event) {		errorIfClosed();		checkTransactionSynchStatus();		SaveOrUpdateEventListener[] saveOrUpdateEventListener = listeners.getSaveOrUpdateEventListeners();		for ( int i = 0; i < saveOrUpdateEventListener.length; i++ ) {			saveOrUpdateEventListener[i].onSaveOrUpdate(event);		}	}	// save() operations ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	public void save(Object obj, Serializable id) throws HibernateException {		save(null, obj, id);	}	public Serializable save(Object obj) throws HibernateException {		return save(null, obj);	}	public Serializable save(String entityName, Object object) throws HibernateException {		return fireSave( new SaveOrUpdateEvent(entityName, object, this) );	}	public void save(String entityName, Object object, Serializable id) throws HibernateException {		fireSave( new SaveOrUpdateEvent(entityName, object, id, this) );	}	private Serializable fireSave(SaveOrUpdateEvent event) {		errorIfClosed();		checkTransactionSynchStatus();		SaveOrUpdateEventListener[] saveEventListener = listeners.getSaveEventListeners();		for ( int i = 0; i < saveEventListener.length; i++ ) {			saveEventListener[i].onSaveOrUpdate(event);		}		return event.getResultId();	}	// update() operations ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	public void update(Object obj) throws HibernateException {		update(null, obj);	}	public void update(Object obj, Serializable id) throws HibernateException {		update(null, obj, id);	}	public void update(String entityName, Object object) throws HibernateException {		fireUpdate( new SaveOrUpdateEvent(entityName, object, this) );	}	public void update(String entityName, Object object, Serializable id) throws HibernateException {		fireUpdate(new SaveOrUpdateEvent(entityName, object, id, this));	}	private void fireUpdate(SaveOrUpdateEvent event) {		errorIfClosed();		checkTransactionSynchStatus();		SaveOrUpdateEventListener[] updateEventListener = listeners.getUpdateEventListeners();		for ( int i = 0; i < updateEventListener.length; i++ ) {			updateEventListener[i].onSaveOrUpdate(event);		}	}	// lock() operations ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	public void lock(String entityName, Object object, LockMode lockMode) throws HibernateException {		fireLock( new LockEvent(entityName, object, lockMode, this) );	}	public void lock(Object object, LockMode lockMode) throws HibernateException {		fireLock( new LockEvent(object, lockMode, this) );	}	private void fireLock(LockEvent lockEvent) {		errorIfClosed();		checkTransactionSynchStatus();		LockEventListener[] lockEventListener = listeners.getLockEventListeners();		for ( int i = 0; i < lockEventListener.length; i++ ) {			lockEventListener[i].onLock( lockEvent );		}	}	// persist() operations ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	public void persist(String entityName, Object object) throws HibernateException {		firePersist( new PersistEvent(entityName, object, this) );	}	public void persist(Object object) throws HibernateException {		persist(null, object);	}	public void persist(String entityName, Object object, Map copiedAlready)	throws HibernateException {		firePersist( copiedAlready, new PersistEvent(entityName, object, this) );	}	private void firePersist(Map copiedAlready, PersistEvent event) {		errorIfClosed();		checkTransactionSynchStatus();		PersistEventListener[] persistEventListener = listeners.getPersistEventListeners();		for ( int i = 0; i < persistEventListener.length; i++ ) {			persistEventListener[i].onPersist(event, copiedAlready);		}	}	private void firePersist(PersistEvent event) {		errorIfClosed();		checkTransactionSynchStatus();		PersistEventListener[] createEventListener = listeners.getPersistEventListeners();		for ( int i = 0; i < createEventListener.length; i++ ) {			createEventListener[i].onPersist(event);		}	}	// persistOnFlush() operations ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	public void persistOnFlush(String entityName, Object object)			throws HibernateException {		firePersistOnFlush( new PersistEvent(entityName, object, this) );	}	public void persistOnFlush(Object object) throws HibernateException {		persist(null, object);	}	public void persistOnFlush(String entityName, Object object, Map copiedAlready)			throws HibernateException {		firePersistOnFlush( copiedAlready, new PersistEvent(entityName, object, this) );	}	private void firePersistOnFlush(Map copiedAlready, PersistEvent event) {		errorIfClosed();		checkTransactionSynchStatus();		PersistEventListener[] persistEventListener = listeners.getPersistOnFlushEventListeners();		for ( int i = 0; i < persistEventListener.length; i++ ) {			persistEventListener[i].onPersist(event, copiedAlready);		}	}	private void firePersistOnFlush(PersistEvent event) {		errorIfClosed();		checkTransactionSynchStatus();		PersistEventListener[] createEventListener = listeners.getPersistOnFlushEventListeners();		for ( int i = 0; i < createEventListener.length; i++ ) {			createEventListener[i].onPersist(event);		}	}	// merge() operations ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	public Object merge(String entityName, Object object) throws HibernateException {		return fireMerge( new MergeEvent(entityName, object, this) );	}	public Object merge(Object object) throws HibernateException {		return merge(null, object);	}	public void merge(String entityName, Object object, Map copiedAlready) throws HibernateException {		fireMerge( copiedAlready, new MergeEvent(entityName, object, this) );	}	private Object fireMerge(MergeEvent event) {		errorIfClosed();		checkTransactionSynchStatus();		MergeEventListener[] mergeEventListener = listeners.getMergeEventListeners();		for ( int i = 0; i < mergeEventListener.length; i++ ) {			mergeEventListener[i].onMerge(event);		}		return event.getResult();	}	private void fireMerge(Map copiedAlready, MergeEvent event) {		errorIfClosed();		checkTransactionSynchStatus();		MergeEventListener[] mergeEventListener = listeners.getMergeEventListeners();		for ( int i = 0; i < mergeEventListener.length; i++ ) {			mergeEventListener[i].onMerge(event, copiedAlready);		}	}	// saveOrUpdateCopy() operations ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	public Object saveOrUpdateCopy(String entityName, Object object)			throws HibernateException {		return fireSaveOrUpdateCopy( new MergeEvent(entityName, object, this) );	}	public Object saveOrUpdateCopy(Object object) throws HibernateException {		return saveOrUpdateCopy( null, object );	}	public Object saveOrUpdateCopy(String entityName, Object object, Serializable id)			throws HibernateException {		return fireSaveOrUpdateCopy( new MergeEvent(entityName, object, id, this) );	}	public Object saveOrUpdateCopy(Object object, Serializable id)			throws HibernateException {		return saveOrUpdateCopy( null, object, id );	}	public void saveOrUpdateCopy(String entityName, Object object, Map copiedAlready)			throws HibernateException {		fireSaveOrUpdateCopy( copiedAlready, new MergeEvent( entityName, object, this ) );	}	private void fireSaveOrUpdateCopy(Map copiedAlready, MergeEvent event) {		errorIfClosed();		checkTransactionSynchStatus();		MergeEventListener[] saveOrUpdateCopyEventListener = listeners.getSaveOrUpdateCopyEventListeners();		for ( int i = 0; i < saveOrUpdateCopyEventListener.length; i++ ) {			saveOrUpdateCopyEventListener[i].onMerge(event, copiedAlready);		}	}	private Object fireSaveOrUpdateCopy(MergeEvent event) {		errorIfClosed();		checkTransactionSynchStatus();		MergeEventListener[] saveOrUpdateCopyEventListener = listeners.getSaveOrUpdateCopyEventListeners();		for ( int i = 0; i < saveOrUpdateCopyEventListener.length; i++ ) {			saveOrUpdateCopyEventListener[i].onMerge(event);		}		return event.getResult();	}	// delete() operations ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	/**	 * Delete a persistent object	 */	public void delete(Object object) throws HibernateException {		fireDelete( new DeleteEvent(object, this) );	}	/**	 * Delete a persistent object (by explicit entity name)	 */	public void delete(String entityName, Object object) throws HibernateException {		fireDelete( new DeleteEvent( entityName, object, this ) );	}	/**	 * Delete a persistent object	 */	public void delete(String entityName, Object object, boolean isCascadeDeleteEnabled, Set transientEntities) throws HibernateException {		fireDelete( new DeleteEvent( entityName, object, isCascadeDeleteEnabled, this ), transientEntities );	}	private void fireDelete(DeleteEvent event) {		errorIfClosed();		checkTransactionSynchStatus();		DeleteEventListener[] deleteEventListener = listeners.getDeleteEventListeners();		for ( int i = 0; i < deleteEventListener.length; i++ ) {			deleteEventListener[i].onDelete( event );		}	}	private void fireDelete(DeleteEvent event, Set transientEntities) {		errorIfClosed();		checkTransactionSynchStatus();		DeleteEventListener[] deleteEventListener = listeners.getDeleteEventListeners();		for ( int i = 0; i < deleteEventListener.length; i++ ) {			deleteEventListener[i].onDelete( event, transientEntities );		}	}	// load()/get() operations ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	public void load(Object object, Serializable id) throws HibernateException {		LoadEvent event = new LoadEvent(id, object, this);		fireLoad( event, LoadEventListener.RELOAD );	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -