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

Hibernate中的find與普通createQuery的區(qū)別

開發(fā) 后端
本文向您介紹Hibernate中find與普通createQuery在查找數(shù)據(jù)庫操作時的區(qū)別。

Hibernate中的find是根據(jù)主鍵首先去緩存中查找,找到就直接返回,找不到就接著去數(shù)據(jù)庫中查找;

而createQuery直接就去數(shù)據(jù)庫中查找,不管緩存中是不是已經(jīng)存在了;

兩者一般情況下邏輯效果是一樣的,只是性能上有些差別,但有些特定情況下就不同了。

輸入一批“水表數(shù)據(jù)信息”,循環(huán)處理這些信息,當(dāng)水表信息表示的水表不在數(shù)據(jù)庫中時就根據(jù)這些信息構(gòu)造水表實體存入數(shù)據(jù)庫,輸入的“水表數(shù)據(jù)信息”可能有相同的水表信息,這樣就會有多次查找同樣水表的查詢,但他們返回的結(jié)果不應(yīng)當(dāng)是相同的,第一次沒查到就新建一個,再次查詢時應(yīng)該能查到,否則水表就會重復(fù)了。這時候Hibernate find與普通createQuery的區(qū)別就顯示出來了,新建后再find同樣的水表就會查出剛剛建立的水表(雖然他還沒有進(jìn)入數(shù)據(jù)庫,因為循環(huán)完后才commit),而createQuery每次查詢結(jié)果都相同(查不到,因為數(shù)據(jù)庫里沒有該水表),這樣就會新建多個相同的水表,導(dǎo)致數(shù)據(jù)庫主鍵重復(fù)異常。

【編輯推薦】

  1. 淺談在Hibernate中使用Oracle sequence
  2. Hibernate中cascade和inverse的相關(guān)
  3. Hibernate查詢方法之探析
  4. Struts與Hibernate的完美結(jié)合方案
  5. 淺談Struts分頁中的Hibernate如何實現(xiàn)
責(zé)任編輯:張攀 來源: javaeye.com
相關(guān)推薦

2009-06-24 08:02:15

Hibernateupdate與save

2009-06-18 11:43:40

Hibernate uHibernate s

2009-09-22 13:12:25

Hibernateibatis

2017-10-26 14:59:47

MybatisHibernate數(shù)據(jù)庫

2009-06-29 18:32:30

Hibernate

2009-07-09 16:01:27

2009-06-26 16:23:12

Hibernate gHibernate l

2021-12-28 20:06:43

JavaScript開發(fā)數(shù)組

2009-09-24 13:39:06

Hibernate VHibernate P

2009-08-21 09:28:23

this與$(this

2009-06-16 15:03:53

Hibernate保存Hibernate

2011-08-11 10:22:59

ibatishibernate

2009-06-12 16:24:44

Hibernate lHibernate g

2009-06-17 12:09:41

2009-06-16 09:29:59

2024-03-07 13:30:44

Java對象true

2009-12-17 17:17:10

Linux操作系統(tǒng)

2009-09-24 14:04:25

Hibernate i

2022-03-30 14:34:21

鴻蒙HarmonyOScss

2009-06-17 16:08:58

Hibernate C
點(diǎn)贊
收藏

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