查詢時報第一頁沒有資料,第二頁有資料的異常

2022-05-05 03:12:08 字數 1268 閱讀 6386

今天遇到的問題:

1、查到的資料顯示這是乙個hibernate 中 常見的問題

2、下面說說這個問題出現的原因和解決方法:

產生此問題的原因:

有兩張表,table1和table2.產生此問題的原因就是table1裡做了關聯或者

(特殊的多對一對映,實際就是一對一)來關聯table2.當hibernate查詢的時候,table2裡的資料沒有與table1相匹配的,

這樣就會報norowwiththegivenidentifierexists這個錯.(一句話,就是資料的問題!)

hibernate的查詢的比較

hibernate的查詢有很多,query,find,criteria,get,load

query使用hsql語句,可以設定引數是常用的一種方式

criteria的方式,盡量避免了寫hql語句,看起來更物件導向了。

find方式,這種方式已經被新的hibernate丟棄

get和load方式是根據id取得乙個記錄

下邊詳細說一下get和load的不同,因為有些時候為了對比也會把find加進來。

1,從返回結果上對比:

load方式檢索不到的話會丟擲org.hibernate.objectnotfoundexception異常

get方法檢索不到的話會返回null

2,從檢索執行機制上對比:

get方法和find方法都是直接從資料庫中檢索

而load方法的執行則比較複雜

1,首先查詢session的persistent context中是否有快取,如果有則直接返回

2,如果沒有則判斷是否是lazy,如果不是直接訪問資料庫檢索,查到記錄返回,查不到丟擲異常

3,如果是lazy則需要建立**物件,物件的initialized屬性為false,target屬性為null

4, 在訪問獲得的**物件的屬性時,檢索資料庫,如果找到記錄則把該記錄的物件複製到**物件的target

上,並將initialized=true,如果找不到就丟擲異常 。

所以,出現上述的問題 絕對是資料庫的問題!!!檢視控制台 報的異常後面的資訊,就是那一條資料的問題。不要懷疑,就它就它!!

查詢時報第一頁沒有資料,第二頁有資料的異常

今天遇到的問題 1 查到的資料顯示這是乙個hibernate 中 常見的問題 2 下面說說這個問題出現的原因和解決方法 產生此問題的原因 有兩張表,table1和table2.產生此問題的原因就是table1裡做了關聯或者 特殊的多對一對映,實際就是一對一 來關聯table2.當hibernate查...

php分頁資料最後一頁繼續追加第一頁資料

一般情況我們寫資料分頁都是如下 分頁碼 page request page 顯示條數 limit 10 分頁開始條數 start limit page 1 limit 執行sql語句得到的結果 list model table limit start limit limit findall 返回資料...

php分頁資料最後一頁繼續追加第一頁資料

一般情況我們寫資料分頁都是如下 分頁碼 page request page 顯示條數 limit 10 分頁開始條數 start limit page 1 limit 執行sql語句得到的結果 list model table limit start limit,limit findall 返回資料...