最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Hibernate中Template如何使用

這篇文章給大家介紹Hibernate中Template如何使用,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

我們注重客戶提出的每個(gè)要求,我們充分考慮每一個(gè)細(xì)節(jié),我們積極的做好成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)服務(wù),我們努力開拓更好的視野,通過不懈的努力,創(chuàng)新互聯(lián)贏得了業(yè)內(nèi)的良好聲譽(yù),這一切,也不斷的激勵(lì)著我們更好的服務(wù)客戶。 主要業(yè)務(wù):網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)站設(shè)計(jì),微信平臺(tái)小程序開發(fā),網(wǎng)站開發(fā),技術(shù)開發(fā)實(shí)力,DIV+CSS,PHP及ASP,ASP.Net,SQL數(shù)據(jù)庫的技術(shù)開發(fā)工程師。

spring的Hibernate Template的execute方法提供的回調(diào)接口具有Session作為參數(shù),但是實(shí)際上,默認(rèn)情況下,Hibernate Template傳遞給回調(diào)接口的session并不是org.hibernate.impl.SessionImpl類,而是SessionImpl類的一個(gè)Proxy類。之所以替換成為一個(gè)Proxy類,Hibernate Template的注釋說明,Proxy提供了一些額外的功能,包括自動(dòng)設(shè)置Cachable,Transaction的超時(shí)時(shí)間,Session資源的更積極的關(guān)閉等等。

private boolean exposeNativeSession = false;  ...  execute方法內(nèi)部:   Session sessionToExpose = (exposeNativeSession ? session : createSessionProxy(session));

但是遺憾的是,Hibernate的DetachedCriteria的setExecutableCriteria方法卻要求將session參數(shù)強(qiáng)制轉(zhuǎn)為SessionImpl,但是spring傳過來的卻是一個(gè)Proxy類,因此就報(bào)錯(cuò)了。

public Criteria getExecutableCriteria(Session session) {  impl.setSession( (SessionImpl) session );   // 要求SessionImpl,Spring傳遞的是Proxy  return impl;  }

解決方法,禁止Spring的Hibernate Template傳遞Proxy類,強(qiáng)制要求它傳遞真實(shí)的SessionImpl類,即給exexute方法增加一個(gè)參數(shù),提供參數(shù)為true,如下:

public List findByCriteria(final DetachedCriteria detachedCriteria) {  return (List) getHibernateTemplate().execute(new HibernateCallback() {  public Object doInHibernate(Session session) throws HibernateException {  Criteria criteria = detachedCriteria.getExecutableCriteria(session);  return criteria.list();  }  }, true);  }

附一個(gè)進(jìn)行模糊查詢的例子:

  1. public PaginationSupport findPageByCriteria(int startIndex, int pageSize, 
    String sortColumnId, Boolean bSortOrder, final String likeValue) {  

  2. DetachedCriteria detachedCriteria = DetachedCriteria .forClass(Time.class);  

  3. // like condition  

  4. if ((likeValue != null && likeValue.trim().length() > 0)) {  

  5. detachedCriteria.add(Restrictions.or(Restrictions.sqlRestriction
    ("statime like ?", "%" + likeValue + "%", Hibernate.STRING),Restrictions.
    sqlRestriction("endtime like ?", "%" + likeValue + "%", Hibernate.STRING)));  

關(guān)于Hibernate中Template如何使用就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。


當(dāng)前名稱:Hibernate中Template如何使用
本文鏈接:http://fisionsoft.com.cn/article/gjephj.html