spring整合JPA(hibernate)以及jdbctemple

對於hibernate褒貶不一,不過爲了擴展性和快速開發,還是挺適用的。我這邊用的框架是strtus2.X Spring2.5 JPA1.0 hibernate 3.2.5

 

hibernate在複雜數據查詢的時候,用HQL或者Criteria都不是好的辦法,另外對大量數據的插入和刪除,性能上也有點問題。這裏就直接引用了jdbcTemple。

 

我這邊使用的連接池是c3p0,由於JPA對proxool無法直接支持,頭疼的要命,要用proxool只能自己寫一個filter

 

因爲要整合事務和數據源,必須使用datasource.

 

下面的基本的項目部署信息:

 

在jpa的entityManagerFactory中嗲用了persistence.xml,這個文件描述了hibernate的一些特性。ps:這個文件裏面本來是空的,因爲resin要識別hibernate.dialect,否則無法加載。

 

<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />

這一條是對jpa的註解描述,可以直接識別不用在寫一堆xml了

 

重要的是上面這一句,直接對jdbcTemple進行了注入,並且將dataSource直接作爲屬性。

另外,使用到jdbcTemple的bean也需要單獨的一個xml,在web.xml加載的時候,也加載進去。

 

我這裏jdbcTemple只做複雜的查詢,沒有做insert delete update等sql操作。所以在事務裏面就把datasource給註釋了。

 

如果要使用到jdbcTemple的sq操作級的功能,必須在事務裏面添加datasource,並且關閉二級緩存。(JPA1.0還沒有支持2級緩存,所以不存在這個問題。) 後期會升級成爲JPA2.0,2.0在1.0的基礎上有了很大的改進,可以分級考慮(跑題了) :)

 

可以集成jdbcTemple當然也可以集成ibatis,不過有點麻煩,要使用ibatis的一些特性,並且註解的方式也不一樣,唯一的辦法就是設定一個aop的攔截,對ibatis的Service進行攔截直接操作。

 

ibatis的集成辦法,我後期會編輯上傳。歡迎各位大蝦斧正~

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章