日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Hibernate概念與常見問題總結(jié)

相信大家在學習新概念的時候都會總結(jié)一些筆記。下面是一些hibernate概念的總結(jié),以及一些Hibernate常見問題的解決方法。

----------------hibernate概念開始----------------

Hibernate簡單講就是ORM,對象關(guān)系映射的一種技術(shù),直接將POJO對象跟DB間的關(guān)系進行配置,描述。

POJO狀態(tài)說明:

在利用hibernate API 操作數(shù)據(jù)庫時,POJO的三種狀態(tài):

瞬時狀態(tài):當POJO.new()時的狀態(tài)

持久化狀態(tài):在利用hibernate session對象進行CRUD的時候處于的狀態(tài)

游離狀態(tài):session關(guān)閉后

POJO中【主鍵】屬性應該盡可能的定義為包裝類型,雖然很多人認為基本類型數(shù)據(jù)不需要進行對象的封箱和解箱操作,但是在hibernate中,主鍵是被轉(zhuǎn)化成對象進行操作的。假設在設計POJO的時候我們將主鍵設置為基本數(shù)據(jù)類型,那么hibernate在接受后,需要轉(zhuǎn)換,當用戶要換取時,又要進行數(shù)據(jù)轉(zhuǎn)換,這樣可能會導致效率更低。所以建議大家使用包裝類數(shù)據(jù)。

這里需要注意unsaved-value是個很重要的屬性。Hibernate通過這個屬性來判斷一個對象應該save還是update,如果這個對象的id是unsaved-value的話,那說明這個對象不是   persistence object會進行save(insert)操作;如果id是非unsaved-value的話,那說明這個對象是persistence   object(數(shù)據(jù)庫中已存在),只要update就行了。

----------------hibernate概念結(jié)束----------------

以下是對Hibernate常見問題進行的總結(jié):

------
org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
------

引發(fā)這種問題的關(guān)鍵是:unsaved-value的值與JOPO中的id值不匹配。

例如:在POJO.hbm.xml中< id name="id" column="id" type="long" unsaved-value="null">

POJO中的id屬性類型為long類型(基本數(shù)據(jù)類型,無數(shù)據(jù)時,值為0)。

測試:現(xiàn)在new()一個POJO,默認id值肯定為0,在hibernate-mapping中找到這個POJO節(jié)點后,發(fā)現(xiàn)它的id的unsaved-value為null,此時無法匹配,后續(xù)判斷的操作也就無從下手,于是出現(xiàn)上述錯誤。

以上就是對Hibernate常見問題的總結(jié)。


網(wǎng)站名稱:Hibernate概念與常見問題總結(jié)
本文網(wǎng)址:http://www.5511xx.com/article/djjcpes.html