亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sessionholder.java

?? spring framework 2.5.4源代碼
?? JAVA
字號:
/*
 * Copyright 2002-2007 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.springframework.orm.hibernate3;

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

import org.hibernate.FlushMode;
import org.hibernate.Session;
import org.hibernate.Transaction;

import org.springframework.transaction.support.ResourceHolderSupport;
import org.springframework.util.Assert;

/**
 * Session holder, wrapping a Hibernate Session and a Hibernate Transaction.
 * HibernateTransactionManager binds instances of this class to the thread,
 * for a given SessionFactory.
 *
 * <p>Note: This is an SPI class, not intended to be used by applications.
 *
 * @author Juergen Hoeller
 * @since 1.2
 * @see HibernateTransactionManager
 * @see SessionFactoryUtils
 */
public class SessionHolder extends ResourceHolderSupport {

	private static final Object DEFAULT_KEY = new Object();

	/**
	 * This Map needs to be synchronized because there might be multi-threaded
	 * access in the case of JTA with remote transaction propagation.
	 */
	private final Map sessionMap = Collections.synchronizedMap(new HashMap(1));

	private Transaction transaction;

	private FlushMode previousFlushMode;


	public SessionHolder(Session session) {
		addSession(session);
	}

	public SessionHolder(Object key, Session session) {
		addSession(key, session);
	}


	public Session getSession() {
		return getSession(DEFAULT_KEY);
	}

	public Session getSession(Object key) {
		return (Session) this.sessionMap.get(key);
	}

	public Session getValidatedSession() {
		return getValidatedSession(DEFAULT_KEY);
	}

	public Session getValidatedSession(Object key) {
		Session session = (Session) this.sessionMap.get(key);
		// Check for dangling Session that's around but already closed.
		// Effectively an assertion: that should never happen in practice.
		// We'll seamlessly remove the Session here, to not let it cause
		// any side effects.
		if (session != null && !session.isOpen()) {
			this.sessionMap.remove(key);
			session = null;
		}
		return session;
	}

	public Session getAnySession() {
		synchronized (this.sessionMap) {
			if (!this.sessionMap.isEmpty()) {
				return (Session) this.sessionMap.values().iterator().next();
			}
			return null;
		}
	}

	public void addSession(Session session) {
		addSession(DEFAULT_KEY, session);
	}

	public void addSession(Object key, Session session) {
		Assert.notNull(key, "Key must not be null");
		Assert.notNull(session, "Session must not be null");
		this.sessionMap.put(key, session);
	}

	public Session removeSession(Object key) {
		return (Session) this.sessionMap.remove(key);
	}

	public boolean containsSession(Session session) {
		return this.sessionMap.containsValue(session);
	}

	public boolean isEmpty() {
		return this.sessionMap.isEmpty();
	}

	public boolean doesNotHoldNonDefaultSession() {
		synchronized (this.sessionMap) {
			return this.sessionMap.isEmpty() ||
					(this.sessionMap.size() == 1 && this.sessionMap.containsKey(DEFAULT_KEY));
		}
	}


	public void setTransaction(Transaction transaction) {
		this.transaction = transaction;
	}

	public Transaction getTransaction() {
		return this.transaction;
	}

	public void setPreviousFlushMode(FlushMode previousFlushMode) {
		this.previousFlushMode = previousFlushMode;
	}

	public FlushMode getPreviousFlushMode() {
		return this.previousFlushMode;
	}


	public void clear() {
		super.clear();
		this.transaction = null;
		this.previousFlushMode = null;
	}

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷综合久色| 国产aⅴ综合色| 在线电影一区二区三区| 亚洲综合区在线| 色综合天天做天天爱| 亚洲男同1069视频| 欧美在线播放高清精品| 亚洲国产中文字幕在线视频综合 | 成人激情免费网站| 国产精品乱码久久久久久| 成人激情免费网站| 一区二区激情小说| 制服视频三区第一页精品| 裸体健美xxxx欧美裸体表演| 精品久久一区二区三区| 国产福利一区二区三区视频 | 91原创在线视频| 亚洲综合无码一区二区| 欧美人与禽zozo性伦| 精品亚洲国产成人av制服丝袜| 久久亚洲春色中文字幕久久久| 国产美女在线观看一区| 国产精品无圣光一区二区| 色综合久久天天| 奇米亚洲午夜久久精品| 国产欧美日韩激情| 91福利国产精品| 激情都市一区二区| 亚洲日本欧美天堂| 欧美一级精品大片| 成人影视亚洲图片在线| 亚洲国产欧美在线| 久久九九久久九九| 91网站在线播放| 美国毛片一区二区三区| 国产欧美久久久精品影院| 欧美三级电影在线观看| 久久av老司机精品网站导航| 国产精品美女久久久久aⅴ| 欧美日韩精品一区二区三区四区 | 91国产福利在线| 麻豆91精品91久久久的内涵| 国产精品色哟哟网站| 欧美美女一区二区三区| 国产激情偷乱视频一区二区三区| 亚洲黄色av一区| 久久精品夜色噜噜亚洲aⅴ| 在线看一区二区| 国产精品99久久久久久久vr | 日韩精品乱码免费| 欧美国产日韩亚洲一区| 欧美日韩精品欧美日韩精品一综合| 国产一区二区在线观看视频| 午夜精品一区二区三区免费视频| 日韩欧美国产精品| 视频一区国产视频| 成人小视频免费在线观看| 亚洲第一av色| 中文字幕一区二区三区在线播放| 国产不卡视频在线观看| 亚洲一二三四区| 国产精品久久久久精k8| 欧美r级在线观看| 欧美性感一类影片在线播放| 成人永久aaa| 国产一区中文字幕| 丝袜诱惑制服诱惑色一区在线观看 | 国产一区二区视频在线| 亚洲a一区二区| 亚洲综合成人网| 1区2区3区精品视频| 欧美国产日韩一二三区| 欧美精品久久久久久久多人混战| 一本色道久久综合狠狠躁的推荐| 狠狠色丁香婷婷综合久久片| 久久精品久久精品| 日韩av高清在线观看| 午夜视频在线观看一区二区| 亚洲黄色尤物视频| 亚洲欧美一区二区三区孕妇| 国产欧美日韩另类视频免费观看| 久久综合色播五月| 久久一区二区三区四区| 日韩一级视频免费观看在线| 884aa四虎影成人精品一区| 91精品办公室少妇高潮对白| 91香蕉视频黄| jvid福利写真一区二区三区| 丁香婷婷综合激情五月色| 国产成人精品影视| 国产精品99久久久久久宅男| 国产一区二区三区免费观看| 国内精品在线播放| 国产成人免费av在线| 成人av动漫网站| 成人动漫在线一区| 91亚洲精品久久久蜜桃| 在线一区二区视频| 欧美唯美清纯偷拍| 6080午夜不卡| 久久久久97国产精华液好用吗| 久久嫩草精品久久久精品一| 亚洲国产岛国毛片在线| 国产精品成人在线观看| 亚洲人成伊人成综合网小说| 亚洲大片一区二区三区| 日韩av电影免费观看高清完整版 | 99视频精品在线| 色偷偷久久人人79超碰人人澡 | 日韩午夜电影av| 精品日韩成人av| 国产欧美日韩激情| 亚洲欧美视频一区| 亚洲18色成人| 国产一区二区免费在线| av不卡免费在线观看| 欧美日韩在线免费视频| 精品99久久久久久| 国产精品国产馆在线真实露脸| 亚洲综合精品自拍| 日韩黄色在线观看| 丰满放荡岳乱妇91ww| 欧美亚洲一区二区在线观看| 欧美一级日韩一级| 一区精品在线播放| 免费观看在线综合色| 成人激情综合网站| 欧美日韩精品一区二区三区| 久久久久久久久久久久久夜| 亚洲精品福利视频网站| 日韩电影一二三区| 成人av动漫网站| 91精品国产高清一区二区三区 | 91美女福利视频| 91精品国产手机| 国产精品久久久久久妇女6080| 爽好多水快深点欧美视频| 福利一区二区在线| 欧美一区二区三区思思人| 中文字幕一区在线| 麻豆成人免费电影| 色综合天天做天天爱| 精品国产1区2区3区| 亚洲一区在线观看免费| 国产成人午夜高潮毛片| 欧美绝品在线观看成人午夜影视| 国产午夜精品一区二区三区嫩草| 日韩在线一区二区三区| 99精品国产99久久久久久白柏| 3d动漫精品啪啪| 日韩一区中文字幕| 国产精品白丝jk黑袜喷水| 宅男在线国产精品| 亚洲欧美一区二区三区久本道91| 国内成人自拍视频| 欧美日韩在线播| 亚洲啪啪综合av一区二区三区| 国产酒店精品激情| 日韩欧美亚洲一区二区| 亚洲综合免费观看高清完整版 | 亚洲成人av中文| 91女神在线视频| 国产亚洲1区2区3区| 免费三级欧美电影| 欧美美女一区二区三区| 亚洲综合视频网| 成人免费不卡视频| 国产亚洲欧洲一区高清在线观看| 男人操女人的视频在线观看欧美| 欧美午夜精品久久久久久超碰 | 久久精品国产色蜜蜜麻豆| 欧洲av一区二区嗯嗯嗯啊| 欧美国产乱子伦| 国产麻豆精品95视频| 精品乱人伦一区二区三区| 日韩精品久久理论片| 欧美高清视频不卡网| 亚洲资源中文字幕| 日本高清不卡视频| 亚洲六月丁香色婷婷综合久久 | 精品久久五月天| 免费观看久久久4p| 日韩网站在线看片你懂的| 日韩精品电影在线| 欧美精选在线播放| 亚洲超丰满肉感bbw| 欧美性受xxxx| 亚洲va国产va欧美va观看| 欧美日韩国产高清一区二区三区 | 国产福利一区在线观看| 久久麻豆一区二区| 国产精品一线二线三线精华| 久久久久久久久97黄色工厂| 国产成人精品免费在线| 欧美激情在线看| 91在线高清观看| 亚洲精品菠萝久久久久久久| 欧美视频一区二区三区四区| 午夜精品福利一区二区蜜股av | 国产成人午夜高潮毛片|