hibernate相關(guān)知識(shí)(踩過的坑 -_- ...)

重學(xué)一遍hibernate艺沼,查漏補(bǔ)缺昨登,自己還有諸多東西需要學(xué)習(xí)鴨!

一冀瓦、one-to-many伴奥、many-to-one、many-to-many使用時(shí)注意!!!實(shí)體類的tostring()方法翼闽,避免循環(huán)遞歸調(diào)用造成StackOverflowError錯(cuò)誤拾徙。

二、hibernate中的延遲加載(lazyload)分[屬性的延遲加載]和[關(guān)系的延遲加載]

    one-to-many:Category-to-Product
  1. 屬性的延遲加載:當(dāng)使用load的方式來獲取對(duì)象的時(shí)候感局,只有訪問了這個(gè)對(duì)象的屬性尼啡,hibernate才會(huì)到數(shù)據(jù)庫中進(jìn)行查詢。否則不會(huì)訪問數(shù)據(jù)庫蓝厌;
    ps:get和load的區(qū)別玄叠,對(duì)id不存在的對(duì)象處理方式
    I. get方式會(huì)返回null
    II. load方式會(huì)拋出異常
        Product p1 = (Product) session.load(Product.class, 2);
        System.out.println("延遲加載!M靥帷读恃!");
        System.out.println(p1.getName());//獲取name時(shí)才訪問數(shù)據(jù)庫
  1. 延遲加載又叫l(wèi)azyload,在one-many many-many的時(shí)候都可以使用關(guān)系的延遲加載代态;
        Category c = (Category) session.get(Category.class, 1);
        System.out.println(c.getName());
        System.out.println("延遲加載K卤埂!蹦疑!");
        System.out.println(c.getProducts());//獲取products時(shí)才會(huì)再次查詢數(shù)據(jù)庫
        System.out.println("結(jié)束N魅浮!歉摧!");

三艇肴、hibernate中的級(jí)聯(lián)操作

  1. 什么是級(jí)聯(lián)腔呜? 簡單的說,沒有配置級(jí)聯(lián)的時(shí)候再悼,刪除分類核畴,其對(duì)應(yīng)的產(chǎn)品不會(huì)被刪除。 但是如果配置了恰當(dāng)?shù)募?jí)聯(lián)冲九,那么刪除分類的時(shí)候谤草,其對(duì)應(yīng)的產(chǎn)品都會(huì)被刪除掉。
  2. 四種級(jí)聯(lián):
    包括上一步說的刪除用得級(jí)聯(lián)莺奸,級(jí)聯(lián)有4種類型:
    all:所有操作都執(zhí)行級(jí)聯(lián)操作丑孩;
    none:所有操作都不執(zhí)行級(jí)聯(lián)操作;
    delete:刪除時(shí)執(zhí)行級(jí)聯(lián)操作灭贷;
    save-update:保存和更新時(shí)執(zhí)行級(jí)聯(lián)操作温学;
    級(jí)聯(lián)通常用在one-many和many-to-many上,幾乎不用在many-one上氧腰。

四枫浙、hibernate緩存

  1. hibernate默認(rèn)是開啟一級(jí)緩存的,一級(jí)緩存存放在session上
  2. 二級(jí)緩存是在SessionFactory上需要插件古拴,如ehcahe等

五箩帚、Hibernate有兩種方式獲得session,分別是: openSession和getCurrentSession

他們的區(qū)別在于

  1. 獲取的是否是同一個(gè)session對(duì)象
    openSession每次都會(huì)得到一個(gè)新的Session對(duì)象
    getCurrentSession在同一個(gè)線程中,每次都是獲取相同的Session對(duì)象黄痪,但是在不同的線程中獲取的是不同的Session對(duì)象
  2. 事務(wù)提交的必要性
    openSession只有在增加紧帕,刪除,修改的時(shí)候需要事務(wù)桅打,查詢時(shí)不需要的
    getCurrentSession是所有操作都必須放在事務(wù)中進(jìn)行是嗜,并且提交事務(wù)后,session就自動(dòng)關(guān)閉挺尾,不能夠再進(jìn)行關(guān)閉

六鹅搪、Hibernate使用樂觀鎖來處理臟數(shù)據(jù)問題

樂觀鎖原理.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市遭铺,隨后出現(xiàn)的幾起案子丽柿,更是在濱河造成了極大的恐慌,老刑警劉巖魂挂,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件甫题,死亡現(xiàn)場離奇詭異,居然都是意外死亡涂召,警方通過查閱死者的電腦和手機(jī)坠非,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來果正,“玉大人炎码,你說我怎么就攤上這事盟迟。” “怎么了辅肾?”我有些...
    開封第一講書人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵队萤,是天一觀的道長。 經(jīng)常有香客問我矫钓,道長,這世上最難降的妖魔是什么舍杜? 我笑而不...
    開封第一講書人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任新娜,我火速辦了婚禮,結(jié)果婚禮上既绩,老公的妹妹穿的比我還像新娘概龄。我一直安慰自己,他們只是感情好饲握,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開白布私杜。 她就那樣靜靜地躺著,像睡著了一般救欧。 火紅的嫁衣襯著肌膚如雪衰粹。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評(píng)論 1 284
  • 那天笆怠,我揣著相機(jī)與錄音铝耻,去河邊找鬼。 笑死蹬刷,一個(gè)胖子當(dāng)著我的面吹牛瓢捉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播办成,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼泡态,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了迂卢?” 一聲冷哼從身側(cè)響起某弦,我...
    開封第一講書人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎冷守,沒想到半個(gè)月后刀崖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡拍摇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年亮钦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片充活。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蜂莉,死狀恐怖蜡娶,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情映穗,我是刑警寧澤窖张,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站蚁滋,受9級(jí)特大地震影響宿接,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜辕录,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一睦霎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧走诞,春花似錦副女、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至塞绿,卻和暖如春沟涨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背位隶。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來泰國打工拷窜, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人涧黄。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓篮昧,卻偏偏與公主長得像,于是被迫代替她去往敵國和親笋妥。 傳聞我的和親對(duì)象是個(gè)殘疾皇子懊昨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容