關於spring裡HibernateDaoSupport的關於session的獲取方法
我在一個事務裡呼叫了兩次getCurrentSession,就是this.getHibernateTemplate().getSessionFactory().getCurrentSession(),卻打開了兩個session,事務提交後只關閉了一個。如果我換成HibernateDaoSupport提供的方法操作卻沒有這個問題,只打開1個session提交後正常關閉。請問這是怎麼回事?
我做了幾個測試 如果使用this.getSession()則session正常關閉,呼叫多次也沒問題。 如果使用this.getHibernateTemplate().getSessionFactory().getCurrentSession(),始終開啟1個session並且不能關閉。 如果使用this.getHibernateTemplate().getSessionFactory().getSession(),呼叫幾次開啟幾個session並且都不能關閉。 就是說,凡是通過this.getHibernateTemplate().getSessionFactory()獲得的session都不在事務管理內。 我的spring的sessionFactory配置是這樣的 <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation" value="classpath:hibernate.cfg.xml"/> </bean> 因為如果使用this.getSession()正常,所以事務配置應該是沒有問題的。 而且有一點,如果是通過this.getHibernateTemplate().getSessionFactory()獲得的session必須要beginTransaction,而this.getSession()則不用。 我在dao裡分別列印了兩種途徑獲得的session的.getTransaction().isActive(), 很顯然,getCurrentSession()的是false。
相關推薦
Spring 中 java 獲取方法引數名稱
一、介紹 在學習Spring ioc的時候,我們可以在Spring配置檔案中 對 物件構造器方法和例項方法按引數名稱進行注入,在我以前學習使用的時候,並沒有感覺有啥困難的,也一直以為java反射能夠獲取到方法的引數名稱, 但是在我簡單(spring ioc的
關於spring裡HibernateDaoSupport的關於session的獲取方法
我在一個事務裡呼叫了兩次getCurrentSession,就是this.getHibernateTemplate().getSessionFactory().getCurrentSession(),卻打開了兩個session,事務提交後只關閉了一個。如果我換成Hibern
spring 根據beanName獲取bean物件,呼叫其方法
通用類 @Component public class SpringContextUtil implements ApplicationContextAware { private static ApplicationContext applicationConte
JS和JQ獲取標籤裡的內容方法總結
<select class="form-control" id="province" name="province"> <option value="1" >河南</option> <option value="2"
spring 獲取方法引數簽名
最近在用CXF restful ,cxf3 集成了Validation, 但hibernate validation返回的異常資訊裡不能準確的顯示出方法引數簽名,只能以arg0 arg1來表示引數,對於我們的外部api來說我只能說hibernate做的真爛,spring 在
JS和JQ中獲取標籤裡的內容方法總結
JQ獲得內容 - text()、html() 以及 val() 三個簡單實用的用於 DOM 操作的 jQuery 方法: text() - 設定或返回所選元素的文字內容 html() - 設定或返回所選元素的內容(包括 HTML 標記) val() - 設定或返回表單欄位的
Springmvc獲取session,session裡存取值得方法
session物件的獲取: 1:最簡單當形參注入 @RequestMapping("/main/login") public String userLogin(String yhdm,
Spring 中Controller 獲取請求參數的方法筆記
-type 接收 turn public str json href mod oca 1、直接把表單的參數寫在Controller相應的方法的形參中,適用於get方式提交,不適用於post方式提交。若"Content-Type"="application/x-www-f
為何Spring MVC可獲取到方法引數名,而MyBatis卻不行?【享學Spring MVC】
每篇一句 胡適:多談些問題,少聊些主義 前言 Spring MVC和MyBatis作為當下最為流行的兩個框架,大家平時開發中都在用。如果你往深了一步去思考,你應該會有這樣的疑問: 在使用Spring MVC的時候,你即使不使用註解,只要引數名和請求引數的key對應上了,就能自動完成數值的封裝 在使用My
計算機網卡信息獲取方法
sco nic lin main ip配置 pro sin 掩碼 標識 using System; using System.Net.NetworkInformation; namespace DNSGet { class Program { st
Qt程序關於路徑、用戶目錄路徑、臨時文件夾位置獲取方法
lis 靜態函數 目錄下的文件 兩個 top 存儲 class ber ron 比如我們有一個程序在: C:/Qt/examples/tools/regexp/regexp.exe 1. 程序所在目錄 QString QCoreApplication::appl
static關鍵字,引發的spring普通類獲取spring的bean的思考
pan conf ati ets 普通 blog 編譯器 自定義 這也 在c++和java中static關鍵字用於修飾靜態成員變量和成員函數 舉例一個普通的javabean class AA { int a; static int b; geta/set
js相關的時間獲取方法
strong += 定時 spec comm mce 調用 標準 轉換成 1、獲取時間 var time=new Date();//返回的是GMT,格林尼治標準時間. console.log(time);//Thu Jul 27 2017 16:55:21 GMT+0800
spring與mybati整合方法
interface start face mapper con tro p s org lose (1)spring配置文件: <!-- 引入jdbc配置文件 --> <context:property-placeholder lo
a鏈接獲取方法
getmethod 獲取 ces cti alert add rip spa tin 在a鏈接實現調方法獲取接口地址 1、weixin.js function getinit() { $.ajax({ type: ‘get‘, url: u
[轉]使用@Test 也可以從spring容器中獲取依賴註入
oca fig article ring1 detail ice 如果 text resource 轉自:http://blog.csdn.net/u010987379/article/details/52091790 @RunWith(SpringJUnit4Cla
linux c性能測試的時間間隔獲取方法
時間間隔 lock 測試的 double urn 需要 方法 ++ timezone 一、clock_t clock(void)函數 說明:clock_t其實就是long,即長整形。該函數返回值是硬件滴答數,要換算成毫秒或者秒。換算為毫秒需要除以1000,若換算為秒則除
前端性能測試--啟動時間監控數值獲取方法
指令 key 應用 進程 前端 -- 打開 應用程序 沒有 啟動時間:分為冷啟動和熱啟動 冷啟動:程序的首次啟動,進程首次出現,並加載資源的啟動 熱啟動:應用程序在後臺,並沒有完全被殺死,再次打開的啟動 冷啟動: 啟動app命令: adb shell
Spring boot隨時獲取ApplicationContex
context aware 獲取 ner itl comm pbo none listen [java] view plain copy print?@Service
spring MVC中獲取request和response:
log clas pos stc body stat response ons style spring MVC中獲取request和response: HttpServletRequest request = ((ServletRequestAttributes)