Hibernate之即時更新

來源:互聯網
上載者:User

標籤:

  昨天工作中遇到了一個簡單的問題,弄了好久,都怪自己沒有好好的去瞭解hibernate,導致了這樣的問題弄了兩三個小時。

  問題是這樣的:我想即時更改資料,然後再查詢

      (1)用Spring的getHibernateTemplate.update來更新,

      (2)然後用this.getHibernateTemplate().getSessionFactory().getCurrentSession().createSQLQuery(select * ).addScalar.....查詢。

      我以為步驟(1)會更新到資料庫。然而查詢出來的資料一直不對。我以為是我的邏輯錯誤導致了資料的不正確,後來調試發現是由於資料根本

沒有更新到資料庫。

     我上網搜尋發現原因如下:   

    Hibernate緩衝分為二級,第一級存放於session中稱為一級緩衝,預設帶有且不能卸載。

  第二級是由sessionFactory控制的進程級緩衝。是全域共用的緩衝,凡是會調用二級緩衝的查詢方法都會從中受益。只有經正確的配置後二級緩衝才會發揮作用。同時在進行條件查詢時必須使用相應的方法才能從緩衝中擷取資料。比如Query.iterate()方法、load、get方法等。必須注意的是session.find方法永遠是從資料庫中擷取資料,不會從二級緩衝中擷取資料,即便其中有其所需要的資料也是如此。

     參考:http://blog.csdn.net/woshichenxu/article/details/586361

      

Hibernate之即時更新

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.