溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Hibernate中session常用方法

發(fā)布時(shí)間:2020-07-04 21:25:14 來源:網(wǎng)絡(luò) 閱讀:2644 作者:奔跑吧爽爽 欄目:開發(fā)技術(shù)

1.session.save(實(shí)體類) 保存
2.session.get(實(shí)體類的字節(jié)碼文件,變量id)
3.session.update(實(shí)體類)
4.session.delete(實(shí)體類)
5.查詢使用query對(duì)象來查詢
Query q = session.createQuery(hql)
什么是hql
hql是hibernate的查詢語言 ( from 實(shí)體類) 不需要寫selcet
相對(duì)于sql語句,在hql語句中 涉及到表中信息的,都使用實(shí)體類和類中的屬性代替
List<實(shí)體類> 變量 = q.list();

6.和一級(jí)緩存相關(guān)的方法
6.1
close() 關(guān)閉session,說明session已經(jīng)不能用了
clear() 清除session中的一級(jí)緩存,所有緩存在session中的數(shù)據(jù)全部被清除
區(qū)別:clear()方法session還可以用
6.2
evict(Object)清除一級(jí)緩存中指定的對(duì)象
6.3
refresh(Object) 使用數(shù)據(jù)庫中的數(shù)據(jù)修改緩存的數(shù)據(jù) 同時(shí)也會(huì)修改內(nèi)存對(duì)象 快照是拿緩存中的數(shù)據(jù)修改數(shù)據(jù)庫 refresh拿數(shù)據(jù)庫中的數(shù)據(jù)修改緩存
6.4
flush()手動(dòng)執(zhí)行快照機(jī)制 默認(rèn)是在事物提交時(shí)執(zhí)行快照機(jī)制

7.save和persist的區(qū)別
共同點(diǎn)把臨時(shí)態(tài)變成了持久態(tài)
區(qū)別:
save方法是hibernate提供的
persist方法是jpa規(guī)范提供的
jpa規(guī)范:java持久化api
該規(guī)范的指定有hibernate作為主導(dǎo)
但是,由于他是一個(gè)規(guī)范,任何支持持久化的orm框架都比尋遵循,hibernate也不能例外
最重要的區(qū)別:事物問題
如果有事物的話,兩個(gè)都是執(zhí)行保存(把對(duì)象有臨時(shí)態(tài)變成持久態(tài))
如果沒有事物:
save方法:
Hibernate3執(zhí)行保存操作,但是但是由于沒有事物,則不會(huì)提交。事物會(huì)自動(dòng)回滾
hibernate5會(huì)在一個(gè)內(nèi)置的事物中執(zhí)行
persist方法:什么都不會(huì)做
8.update和merge
Hibernate中session常用方法
第一步對(duì)象從臨時(shí)態(tài)變成永久態(tài)
第二部對(duì)象從永久態(tài)變成托管態(tài)
第三部把jvm中的內(nèi)存對(duì)象的值改變
第四部對(duì)象從臨時(shí)態(tài)便曾永久態(tài)
第五步更新托管態(tài)對(duì)象報(bào)錯(cuò)(因?yàn)閡pdate方法會(huì)先把托管態(tài)對(duì)象加載到以及緩存中,以及緩沖中已經(jīng)存在了oid形同的對(duì)象)NonUniqueObjectException
解決辦法是用merge方法
merge會(huì)把兩個(gè)相同oid的對(duì)象數(shù)據(jù)合并 永遠(yuǎn)是用臨時(shí)態(tài)或者托管態(tài)的對(duì)象數(shù)據(jù)改變持久態(tài)的

update時(shí) 如果更新的數(shù)據(jù)。在提交之前被其他程序刪除 會(huì)報(bào)錯(cuò)

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI