最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

hibernate 常用方法介紹

 更新時(shí)間:2013年09月22日 15:05:44   作者:  
這篇文章介紹了hibernate的常用方法,有需要的朋友可以參考一下
一、hibetnateTemplate常用方法

1、delete(Object entity) 刪除指定的持久化實(shí)例
在程序中一般先用    Assert.notNull和 Assert.isTrue斷言entity是否為空 和 entity的id是否大于0若
否則事務(wù)回滾。再用get(Class entityClass,Serializable id,LockMode lockMode)加鎖查詢出持久
化實(shí)例,一般用lockMode.update悲觀鎖,最后用delete(Object entity)來(lái)刪除此實(shí)例。

2、deleteAll(Collection entities) 刪除集合內(nèi)全部持久化實(shí)例
entities必須為持久化實(shí)例,否則報(bào)數(shù)據(jù)庫(kù)異常錯(cuò)誤。

3、find(String queryString) 根據(jù)HQL查詢字符串來(lái)返回實(shí)例集合
find方法在執(zhí)行時(shí)會(huì)先查找緩存,如果緩存找不到再查找數(shù)據(jù)庫(kù),如果再找不到就會(huì)返回null。

4、get(Class entityClass,Serializable id)根據(jù)主鍵加載特定持久化實(shí)例
在程序中一般先用     Assert.isTrue斷言id是否大于0,若大于0繼續(xù)執(zhí)行,若查到數(shù)據(jù)則返回實(shí)例,否則返回空
不同于load,load若有數(shù)據(jù)則返回實(shí)例,否則報(bào)出ObjectNotFoundEcception異常,相比來(lái)說(shuō)get效率高些

5、save(Object entity) 保存新的實(shí)例
在程序中一般先用    Assert.notNull斷言實(shí)體是否為空,在進(jìn)行保存。

6、saveOrUpdate(Object entity)根據(jù)實(shí)例的狀態(tài)選擇保存或者是更新
此方法同時(shí)包含了save與update方法的功能,如果傳入的參數(shù)是臨時(shí)對(duì)象vo 沒有id,就調(diào)用save方法;如果傳
入的參數(shù)是游離對(duì)象有id,就調(diào)用update()方法;如果傳入的參數(shù)是持久化對(duì)象po,就直接返回。

7、update(Object entity) 更新實(shí)例的狀態(tài) 實(shí)例必須為持久化狀態(tài)
在程序中一般先用    Assert.notNull和 Assert.isTrue斷言entity是否為空 和 entity的id是否大于0,
然后在更新實(shí)例,entity必須含有id否則不能更新。

8、Object execute(hibetnateCallback action)是HibernateCallback接口類。
當(dāng)dao中的方法不能滿足程序需要時(shí)可以考慮用此方法。如:根據(jù)幾個(gè)不同參數(shù)需要返回唯一實(shí)體時(shí)用uniqueResult()返回。
HibernateCallback里面定義了一個(gè)doInHibernate的方法,這個(gè)方法是可變的。如果要查找數(shù)據(jù)方法應(yīng)該就
是:session.load()。刪除數(shù)據(jù)就是session.delete().這樣的話查詢數(shù)據(jù)庫(kù)的方法用execute方法。

 
9、bulkUpdate()通過(guò)語(yǔ)句直接增加、更新、刪除實(shí)體
一般有bulkUpdate(String sqlString) 和 bulkUpdate(String sqlString,Object[] object)兩個(gè)
方法,返回增加,更新,或者刪除的數(shù)量一般用于批量。
 
10、hibernate主鍵生成策略
 
(1)Assigned: 在插入數(shù)據(jù)的時(shí)候主鍵由用戶自己添加。如:<generator class="assigned"/>
(2)sequence: 調(diào)用數(shù)據(jù)庫(kù)的sequence來(lái)生成主鍵,要設(shè)定序列名,否則hibernate無(wú)法找到。
如:<param   name="sequence">ENTTY_NAME_SEQ</param>
(3)increment 插入數(shù)據(jù)的時(shí)候hibernate會(huì)給主鍵添加一個(gè)自增的主鍵,但是一個(gè)hibernate實(shí)例就維護(hù)一個(gè)計(jì)數(shù)器,
所以在多個(gè)實(shí)例運(yùn)行的時(shí)候不能使用這個(gè)方法。

11、實(shí)體對(duì)象的三種狀態(tài)
Session的生命周期綁定在一個(gè)物理的事務(wù)(tansaction)上面。
Session的主要功能是提供對(duì)映射的實(shí)體類實(shí)例的創(chuàng)建,讀取和刪除操作
(1)自由狀態(tài)(transient): 不曾進(jìn)行持久化,未與任何Session相關(guān)聯(lián)
(2)持久化狀態(tài)(persistent): 僅與一個(gè)Session相關(guān)聯(lián)
持久化實(shí)例可以通過(guò)調(diào)用 delete()變成游離狀態(tài)。通過(guò)get()或load()方法得到的實(shí)例都是持久化狀態(tài)的
(3)游離狀態(tài)(detached): 已經(jīng)進(jìn)行過(guò)持久化,但當(dāng)前未與任何Session相關(guān)聯(lián)
游離狀態(tài)的實(shí)例可以通過(guò)調(diào)用update(),lock(),replicate(),save(),persist()或者saveOrUpdate()方法進(jìn)行持久化

相關(guān)文章

  • Spring事務(wù)管理的使用細(xì)則淺析

    Spring事務(wù)管理的使用細(xì)則淺析

    事務(wù)的作用就是為了保證用戶的每一個(gè)操作都是可靠的,事務(wù)中的每一步操作都必須成功執(zhí)行,只要有發(fā)生異常就 回退到事務(wù)開始未進(jìn)行操作的狀態(tài)。事務(wù)管理是Spring框架中最為常用的功能之一,我們?cè)谑褂肧pring開發(fā)應(yīng)用時(shí),大部分情況下也都需要使用事務(wù)
    2023-02-02
  • Java  中橋接模式——對(duì)象結(jié)構(gòu)型模式的實(shí)例詳解

    Java 中橋接模式——對(duì)象結(jié)構(gòu)型模式的實(shí)例詳解

    這篇文章主要介紹了Java 中橋接模式——對(duì)象結(jié)構(gòu)型模式的實(shí)例詳解的相關(guān)資料,希望通過(guò)本文大家能掌握這部分知識(shí),需要的朋友可以參考下
    2017-09-09
  • Java并發(fā)編程示例(七):守護(hù)線程的創(chuàng)建和運(yùn)行

    Java并發(fā)編程示例(七):守護(hù)線程的創(chuàng)建和運(yùn)行

    這篇文章主要介紹了Java并發(fā)編程示例(七):守護(hù)線程的創(chuàng)建和運(yùn)行,在本節(jié)示例中,我們將創(chuàng)建兩個(gè)線程,一個(gè)是普通線程,向隊(duì)列中寫入事件,另外一個(gè)是守護(hù)線程,清除隊(duì)列中的事件,需要的朋友可以參考下
    2014-12-12
  • Spring Security源碼解析之權(quán)限訪問(wèn)控制是如何做到的

    Spring Security源碼解析之權(quán)限訪問(wèn)控制是如何做到的

    Spring Security 中對(duì)于權(quán)限控制默認(rèn)已經(jīng)提供了很多了,但是,一個(gè)優(yōu)秀的框架必須具備良好的擴(kuò)展性,下面小編給大家介紹Spring Security源碼解析之權(quán)限訪問(wèn)控制是如何做到的,感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • nacos在mac上部署提示找不到或無(wú)法加載主類的解決

    nacos在mac上部署提示找不到或無(wú)法加載主類的解決

    這篇文章主要介紹了nacos在mac上部署提示找不到或無(wú)法加載主類的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • 快速解決springboot在yml配置了啟動(dòng)端口但啟動(dòng)還是8080問(wèn)題

    快速解決springboot在yml配置了啟動(dòng)端口但啟動(dòng)還是8080問(wèn)題

    這篇文章主要介紹了快速解決springboot在yml配置了啟動(dòng)端口但啟動(dòng)還是8080問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • javaweb如何使用華為云短信通知公共類調(diào)用

    javaweb如何使用華為云短信通知公共類調(diào)用

    這篇文章主要介紹了javaweb使用華為云短信通知公共類調(diào)用的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Spring?AOP利用切面實(shí)現(xiàn)日志保存的示例詳解

    Spring?AOP利用切面實(shí)現(xiàn)日志保存的示例詳解

    最近領(lǐng)導(dǎo)讓寫個(gè)用切面實(shí)現(xiàn)日志保存,經(jīng)過(guò)調(diào)研和親測(cè),以完美解決。在這里分享給大家,給有需要的碼友直接使用,希望對(duì)大家有所幫助
    2022-11-11
  • SpringBoot?Redis清除所有的key的實(shí)現(xiàn)方法

    SpringBoot?Redis清除所有的key的實(shí)現(xiàn)方法

    本文主要介紹了SpringBoot?Redis清除所有的key的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • springboot+thymeleaf整合阿里云OOS對(duì)象存儲(chǔ)圖片的實(shí)現(xiàn)

    springboot+thymeleaf整合阿里云OOS對(duì)象存儲(chǔ)圖片的實(shí)現(xiàn)

    本文主要介紹了springboot+thymeleaf整合阿里云OOS對(duì)象存儲(chǔ)圖片的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05

最新評(píng)論

中阳县| 辉南县| 菏泽市| 买车| 景洪市| 松潘县| 新昌县| 交口县| 祁东县| 亚东县| 绥宁县| 沙雅县| 陵川县| 丰宁| 灵山县| 屏东县| 罗源县| 波密县| 惠东县| 且末县| 新昌县| 广州市| 额尔古纳市| 张掖市| 金溪县| 乌兰县| 河曲县| 寿宁县| 内江市| 石渠县| 昌平区| 沛县| 吉安市| 西充县| 巧家县| 博乐市| 贞丰县| 修文县| 鹤峰县| 日喀则市| 张掖市|