自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Hibernate概念與常見問題總結(jié)

開發(fā) 后端
Hibernate簡單講就是ORM,對(duì)象關(guān)系映射的一種技術(shù),直接將POJO對(duì)象跟DB間的關(guān)系進(jìn)行配置。本文介紹了Hibernate概念,并總結(jié)了一些Hibernate常見問題。

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

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

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

POJO狀態(tài)說明:

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

瞬時(shí)狀態(tài):當(dāng)POJO.new()時(shí)的狀態(tài)

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

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

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

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

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

以下是對(duì)Hibernate常見問題進(jìn)行的總結(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ù)時(shí),值為0)。

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

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

【編輯推薦】

  1. Hibernate事務(wù)管理機(jī)制剖析
  2. 描述Hibernate檢查id字段
  3. Hibernate Template簡單描述
  4. Hibernate DetachedCriteria學(xué)習(xí)經(jīng)驗(yàn)
  5. 概述Hibernate equals()方法
責(zé)任編輯:yangsai 來源: JavaEye博客
相關(guān)推薦

2011-03-29 13:23:54

CACTI

2013-01-06 10:43:07

Linux集群

2025-02-27 08:50:00

RocketMQ開發(fā)代碼

2010-07-01 17:18:02

UML包圖

2023-02-08 08:40:21

2011-06-03 10:37:29

筆記本拆解

2009-07-07 10:13:57

Servlet學(xué)習(xí)

2012-06-25 11:51:31

ibmdw

2013-09-10 15:32:38

Eclipse環(huán)境配置

2010-07-21 09:10:02

Perl常見問題

2013-11-14 15:47:29

SDN問題答疑

2011-04-01 13:55:24

Java

2011-05-06 15:39:55

硒鼓

2010-08-06 09:30:03

思科IOS升級(jí)

2009-07-30 12:30:27

ASP.NET中使用S

2013-08-13 13:16:02

Android adb問題

2010-04-14 14:37:56

Oracle卸載

2009-12-31 09:58:51

Ubuntu常見問題

2010-07-21 09:16:47

Perl常見問題

2009-09-22 09:22:03

.NET常見問題
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)