Spring4+Hibernate4整合,關於獲取SessionFactory
最近專案在整合後臺框架,將原來的Spring3.2換為Spring4,Hibernate3換為Hibernate4,以前的Dao元件要做修改。
Spring3時代,為整合Hibernate3提供了HibernateTemplate,為Dao提供了工具類:HibernateDaoSupport。Spring4進行了擴充套件,不再推薦使用HibernateTemplate,HibernateDaoSupport來實現Dao元件,而是使用SessionFactory的getCurrentSession()獲取session,然後進行持久化。
在實現Dao元件獲取session時又遇到問題:
dao實現如下:
public T get(Class<T> entityClazz, Serializable id) {
return (T) sessionFactory.getCurrentSession().get(entityClazz, id);
}
啟動後報錯:
如果將org.hibernate.HibernateException: Could not obtain transaction-synchronized Session for current thread org.springframework.orm.hibernate4.SpringSessionContext.currentSession(SpringSessionContext.java:134)
sessionFactory.getCurrentSession().get(entityClazz, id);
換為sessionFactory.openSession().get(entityClazz, id);
則顯示正常,於是就查閱了一下兩者的不同:
openSession ,是開啟一個新的session物件,而且每次使用都是開啟一個新的session,假如連續使用多次,則獲得的session不是同一個物件,並且使用完需要呼叫close方法關閉session。
getCurrentSession ,是獲取當前上下文一個session物件,當第一次使用此方法時,會自動產生一個session物件,並且連續使用多次時,得到的session都是同一個物件,並且事務提交會自動close,不需要像openSession一樣自己呼叫close方法關閉session
所以,使用getCurrentSession 就要進行事務管理配置,以下是基於註解方式的事務管理配置:(注意匯入aopaliance.jar)
<?xml version="1.0" encoding="UTF-8"?>
[email protected]Service("userService")
@Transactional
public class UserServiceImpl implements IUserService {
@Resource(name = "userDao")
private IUserDao userDao;
@Override
public String test() {
return userDao.test();
}
@Override
public Employee getEmployeeById(Integer id) {
return userDao.getEmployeeById(id);
}
}
相關推薦
Spring4+Hibernate4整合,關於獲取SessionFactory
最近專案在整合後臺框架,將原來的Spring3.2換為Spring4,Hibernate3換為Hibernate4,以前的Dao元件要做修改。 Spring3時代,為整合Hibernate3提供了HibernateTemplate,為Dao提供了工具類:HibernateD
SpringMVC+Spring4+Mybatis3整合,開發簡單Web專案+原始碼下載
基本準備工作 1、安裝JDK1.6以上版本,安裝與配置 4、Spring-4.0.0的版本 5、tomacat6.x以上版本即可 當然,這些jar還不夠,還需要MySQL資料庫與驅動,log4j的jar等等。下面我們開始今天的旅行: 第一步:建立資料庫表
【持久化框架】SpringMVC+Spring4+Mybatis3整合,開發簡單Web專案+原始碼下載
上篇博文我們介紹了mybatis的基本概念與原理,這篇博文我們通過Spring與Mybatis整合,開發一個簡單使用者增刪改查的Web專案。 基本準備工作 1、安裝JDK1.6以上版本,安裝與配置 4、Spring-4.0.0的版本 5、tomacat6
持久化框架】SpringMVC+Spring4+Mybatis3整合,開發簡單Web專案+原始碼下載
轉自:https://blog.csdn.net/jiuqiyuliang/article/details/45132493 上篇博文我們介紹了mybatis的基本概念與原理,這篇博文我們通過Spring與Mybatis整合,開發一個簡單使用者增刪改查的Web專案。 基本準
關於“Spring3 ”與 “Hibernate4” 整合,HibernateTemplate的使用問題。
在Spring3與Hibernate4整個中,Spring3提供的HibernateTemplate類已經被捨棄了,因為在Hibernate4中已經可以自己對事物進行管理,不需要Spring了進行事物的管理,要是使用了Hibernate的Template會出現下面的錯誤資訊
Configuration.buildSessionFactory()過時之後,獲取SessionFactory的寫法
<span style="font-size:14px;">import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; import org.hibernate.ser
maven+springmvc+spring4+hibernate4整合
最近在將maven、springmvc、spring4、hibernate4幾個技術整合做個專案,剛開始的配置就一直出現問題,所以今天做個總結,這是整個專案針對註冊功能的相關配置及實現。 1. web.xml配置: <?xml version="1.0" encodi
Hibernate4與Spring4整合,使用Junit4測試相關學習筆記
一、在myeclipse中建立web project 1.匯入Hibernate4.1與Spring4.1的Libraries。其中myeclipse自帶的spring libraries中缺少spring-test.jar包,需要自己從網上下載。mysql與c3p
Spring4+SpringMVC+Hibernate4整合入門與實例
type 解析 .class -m .config ise pri generated driver 配置web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:
Spring4 MVC Hibernate4整合 Annotation
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.o
spring4 ssm整合quartz,單定時任務
這種配置方式,只適合在專案新增後臺定時任務。 1.新增maven依賴 <!-- quartz--> <dependency> <groupId>org.quartz-scheduler</groupI
SSH:利用Struts2+Hibernate4+Spring4+SQLServer框架,搭建一個前後端web網站(2)
百度編輯器編輯文章 利用百度編輯器實現文章的編寫,實現效果如下: 可以看到利用百度編輯可以很好的實現文字的排版效果,同時還可以多圖上傳以及新增錨點和上傳視屏。 配置的一些關鍵點: 當從
SSH:利用Struts2+Hibernate4+Spring4+SQLServer框架,搭建一個前後端web網站(1)
前言: 利用暑假2個月的時間,自己用框架搭建了一個前後端web網站,因為時間有限,暑假之後便沒有再修改過了。因為這是自己第一次利用架構做的網站,所以在做的過程中也是“一波三折”,需要用到的知識點也是書
Java整合小程式,獲取使用者資訊
微信小程式登入獲取使用者資訊 WeChaConnView.java @RestController @RequestMapping(value = "/wechat") public class WeChaConnView { /*
SSH:利用Struts2+Hibernate4+Spring4+SQLServer框架,搭建一個前後端web網站(3)
為你推薦(模仿cache排程演算法) 網站有為你推薦模組,我是模仿計算機組成原理中的cache的排程演算法。簡單介紹:網站通過將所有的資訊和標籤掛鉤。我給每個使用者20條的“儲存標籤”的空間。其中10條為被標記成old的標籤,10條為被標記成new
springmvc4+hibernate4整合框架的搭建,超詳細哦
放假了!週六日休息!來北京真的不容易呀!和他們一起租房雖然便宜吧!但是週六都在打遊戲!無賴,只能來公司了,前幾天一直糾結於怎麼搭建springmvc+hibernate整合框架,百度了一番,各種報錯的情況,最終算是搭建好了吧!其實對於我個人來說,以前做Andro
Eclipse 引入 dubbo報錯,無法與 Spring4.0 整合的異常修復
在第一次將dubbo整合進當前專案時,發現無法使用。網上有很多類似帖子,嘗試了多好,將類似答案進行了整理,得出了可以解決自己問題的答案。不能保證完全解除此異常,但對我是有用的 涉及軟體與技術
SpringMVC4+Spring4+Hibernate4框架整合
SpringMVC4 + Spring4 + Hibernate4 框架搭建中。。。
js和安卓app互相傳資料(安卓app頁面整合html頁面,獲取資料並給安卓返回資料)
先上Demo:<!DOCTYPE html><html><head> <meta charset="utf-8"></head><body><button onclick="test()"&g
SSH:利用Struts2+Hibernate4+Spring4+SQLServer框架,搭建一個前後端web網站(4)
拆分百度編輯器,實現網站評論和圖片上傳 效果如下: 我們可以通過修改百度編輯器來達到比較美觀的效果。圖一是將百度編輯器改成一個評論區。圖二是隻提取百度編輯器的上傳圖片功能,這比