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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? jpainterceptor.java

?? struts+spring 源碼 希望能給大家?guī)?lái)幫助
?? JAVA
字號(hào):
/*
 * Copyright 2002-2006 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.jpa;

import javax.persistence.EntityManager;

import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;

import org.springframework.transaction.support.TransactionSynchronizationManager;

/**
 * This interceptor binds a new JPA EntityManager to the thread before a method
 * call, closing and removing it afterwards in case of any method outcome.
 * If there already is a pre-bound EntityManager (e.g. from JpaTransactionManager,
 * or from a surrounding JPA-intercepted method), the interceptor simply participates in it.
 *
 * <p>Application code must retrieve a JPA EntityManager via the
 * <code>EntityManagerFactoryUtils.getEntityManager</code> method or - preferably -
 * via a shared <code>EntityManager</code> reference, to be able to detect a
 * thread-bound EntityManager. Typically, the code will look like as follows:
 *
 * <pre>
 * public void doSomeDataAccessAction() {
 *   this.entityManager...
 * }</pre>
 *
 * <p>Note that this interceptor automatically translates PersistenceExceptions,
 * via delegating to the <code>EntityManagerFactoryUtils.convertJpaAccessException</code>
 * method that converts them to exceptions that are compatible with the
 * <code>org.springframework.dao</code> exception hierarchy (like JpaTemplate does).
 *
 * <p>This class can be considered a declarative alternative to JpaTemplate's
 * callback approach. The advantages are:
 * <ul>
 * <li>no anonymous classes necessary for callback implementations;
 * <li>the possibility to throw any application exceptions from within data access code.
 * </ul>
 *
 * <p>The drawback is the dependency on interceptor configuration. However, note
 * that this interceptor is usually <i>not</i> necessary in scenarios where the
 * data access code always executes within transactions. A transaction will always
 * have a thread-bound EntityManager in the first place, so adding this interceptor
 * to the configuration just adds value when fine-tuning EntityManager settings
 * like the flush mode - or when relying on exception translation.
 *
 * @author Juergen Hoeller
 * @since 2.0
 * @see JpaTransactionManager
 * @see JpaTemplate
 */
public class JpaInterceptor extends JpaAccessor implements MethodInterceptor {

	private boolean exceptionConversionEnabled = true;


	/**
	 * Set whether to convert any PersistenceException raised to a Spring DataAccessException,
	 * compatible with the <code>org.springframework.dao</code> exception hierarchy.
	 * <p>Default is "true". Turn this flag off to let the caller receive raw exceptions
	 * as-is, without any wrapping.
	 * @see org.springframework.dao.DataAccessException
	 */
	public void setExceptionConversionEnabled(boolean exceptionConversionEnabled) {
		this.exceptionConversionEnabled = exceptionConversionEnabled;
	}


	public Object invoke(MethodInvocation methodInvocation) throws Throwable {
		// Determine current EntityManager: either the transactional one
		// managed by the factory or a temporary one for the given invocation.
		EntityManager em = getTransactionalEntityManager();
		boolean isNewEm = false;
		if (em == null) {
			logger.debug("Creating new EntityManager for JpaInterceptor invocation");
			em = createEntityManager();
			isNewEm = true;
			TransactionSynchronizationManager.bindResource(getEntityManagerFactory(), new EntityManagerHolder(em));
		}

		try {
			Object retVal = methodInvocation.proceed();
			flushIfNecessary(em, !isNewEm);
			return retVal;
		}
		catch (RuntimeException rawException) {
			if (this.exceptionConversionEnabled) {
				// Translation enabled. Translate if we understand the exception.
				throw translateIfNecessary(rawException);
			}
			else {
				// Translation not enabled. Don't try to translate.
				throw rawException;
			}
		}
		finally {
			if (isNewEm) {
				TransactionSynchronizationManager.unbindResource(getEntityManagerFactory());
				logger.debug("Closing new EntityManager after JpaInterceptor invocation");
				em.close();
			}
		}
	}

}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av在线播放不卡| 91看片淫黄大片一级在线观看| 精品国产露脸精彩对白 | 91成人免费在线视频| 一区二区三区免费| 日韩视频123| youjizz久久| 丝袜美腿成人在线| 久久久噜噜噜久噜久久综合| 91色在线porny| 久久99精品久久久久久国产越南| 国产精品免费久久久久| 欧美精品v国产精品v日韩精品 | www.av亚洲| 亚洲成在人线在线播放| 久久久另类综合| 欧美亚洲国产一区在线观看网站| 狠狠色丁香久久婷婷综| 一区二区三区小说| 久久欧美中文字幕| 欧美日韩大陆在线| av色综合久久天堂av综合| 日日夜夜免费精品| 亚洲免费观看在线观看| 精品久久久久久久久久久久包黑料| jizzjizzjizz欧美| 黄色精品一二区| 亚洲综合网站在线观看| 欧美国产一区二区| 欧美午夜一区二区三区免费大片| 国产精品一二三| 日韩av一区二区三区| 亚洲人亚洲人成电影网站色| 欧美日韩美少妇| 国产馆精品极品| 图片区小说区区亚洲影院| 国产午夜亚洲精品午夜鲁丝片 | 欧美韩国日本综合| 日韩精品一区二区在线观看| 欧美无人高清视频在线观看| 99精品欧美一区二区三区小说| 精品写真视频在线观看| 亚洲va天堂va国产va久| 一区二区三区电影在线播| 国产精品水嫩水嫩| 国产三级三级三级精品8ⅰ区| 欧美大白屁股肥臀xxxxxx| 欧美挠脚心视频网站| 一本一本大道香蕉久在线精品| 国产成人免费在线| 精品一区二区三区日韩| 久久精品国产精品青草| 日韩av一区二区三区四区| 日韩高清一区在线| 日日噜噜夜夜狠狠视频欧美人| 亚洲bt欧美bt精品| 亚洲第四色夜色| 亚洲成av人片在线观看无码| 亚洲一区二区在线免费看| 亚洲黄色小说网站| 一区二区三区国产| 亚洲国产综合91精品麻豆| 亚洲国产精品久久久男人的天堂 | 欧美一区二区精美| 日韩欧美精品在线视频| 精品奇米国产一区二区三区| 日韩免费一区二区| xfplay精品久久| 久久久99精品久久| 亚洲国产精品国自产拍av| 中文字幕在线观看不卡| 成人免费在线视频观看| 亚洲综合免费观看高清完整版在线| 亚洲人被黑人高潮完整版| 亚洲精品视频自拍| 亚洲超碰精品一区二区| 日韩福利视频网| 久久97超碰色| 国产凹凸在线观看一区二区| 成人免费视频一区| 色综合激情五月| 欧美三级视频在线| 欧美一区二区三区视频在线观看 | 成人免费毛片嘿嘿连载视频| k8久久久一区二区三区| 91蜜桃视频在线| 欧美日本国产视频| 精品国产99国产精品| 亚洲国产成人午夜在线一区 | 中文字幕日本不卡| 亚洲一区二区三区三| 日韩精品色哟哟| 国产尤物一区二区在线| 成人深夜在线观看| 欧美日韩国产美| 久久久综合网站| 亚洲免费视频成人| 麻豆精品视频在线观看视频| 成人激情电影免费在线观看| 欧洲日韩一区二区三区| 欧美一级午夜免费电影| 中文无字幕一区二区三区| 亚洲精品大片www| 国产一区二区精品久久| 成人毛片老司机大片| 777色狠狠一区二区三区| 国产亚洲精品7777| 午夜精品福利一区二区三区av| 国产伦精品一区二区三区免费迷| 91丨porny丨首页| 日韩欧美美女一区二区三区| 玉米视频成人免费看| 国产一区二区三区av电影| 在线观看视频一区二区欧美日韩| 精品精品国产高清一毛片一天堂| 亚洲美女免费在线| 国产毛片一区二区| 欧美吞精做爰啪啪高潮| 欧美国产禁国产网站cc| 奇米色一区二区| 91国内精品野花午夜精品| 久久九九全国免费| 日韩二区三区四区| 在线精品视频一区二区三四| 国产偷国产偷亚洲高清人白洁 | 亚洲欧美另类综合偷拍| 国产一区二区三区最好精华液| 欧美亚洲综合久久| 国产精品久久久久久久久图文区| 日韩电影免费一区| 欧美视频三区在线播放| 日韩美女精品在线| 激情深爱一区二区| 欧美一区二区三区免费| 亚洲乱码国产乱码精品精小说| 国产91清纯白嫩初高中在线观看 | 欧美韩国日本综合| 韩国v欧美v亚洲v日本v| 欧美一区二区精品| 亚洲福中文字幕伊人影院| 在线亚洲一区观看| 亚洲欧洲日韩一区二区三区| 国产精品亚洲成人| 久久久夜色精品亚洲| 激情五月婷婷综合网| 91精品国产黑色紧身裤美女| 亚洲第一激情av| 欧美色窝79yyyycom| 亚洲一区二区在线播放相泽 | 成人午夜大片免费观看| 久久久久国产精品厨房| 九色综合狠狠综合久久| 日韩视频一区二区三区在线播放| 婷婷综合五月天| 欧美日韩一卡二卡三卡 | 精品国产免费人成电影在线观看四季 | 国产盗摄精品一区二区三区在线| 欧美成人猛片aaaaaaa| 久久电影网站中文字幕| 久久婷婷久久一区二区三区| 精品一区二区三区影院在线午夜| 久久综合色8888| 风间由美一区二区av101| 国产精品理论片在线观看| 不卡电影一区二区三区| 专区另类欧美日韩| 欧美怡红院视频| 日产欧产美韩系列久久99| 日韩三级在线免费观看| 久草中文综合在线| 亚洲国产精品ⅴa在线观看| www.性欧美| 亚洲精品国产a| 欧美二区乱c少妇| 精品一区二区免费| 久久久精品国产免大香伊| 菠萝蜜视频在线观看一区| 亚洲私人影院在线观看| 欧美影视一区在线| 蜜臀精品一区二区三区在线观看| 久久奇米777| 色综合中文综合网| 免费观看30秒视频久久| 久久亚洲精品国产精品紫薇| 韩日欧美一区二区三区| 国产精品三级久久久久三级| 91九色最新地址| 日本免费在线视频不卡一不卡二| www国产精品av| 99热精品国产| 性久久久久久久久久久久| 2017欧美狠狠色| 91蝌蚪porny成人天涯| 日本中文字幕一区二区有限公司| 久久久精品免费网站| 欧美在线色视频| 精品在线你懂的| 亚洲三级久久久| 6080日韩午夜伦伦午夜伦| 粗大黑人巨茎大战欧美成人|