<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Java信徒

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      2 Posts :: 1 Stories :: 0 Comments :: 0 Trackbacks

    深入淺出Hibernate P281講到使用Hibernate3的Bulk delete/update方式刪除記錄時(shí),寫了段代碼證明這種刪除方式不能緩存同步,會(huì)從緩存中讀取出數(shù)據(jù)庫(kù)已經(jīng)刪除的信息,我依葫蘆畫瓢寫了段代碼,結(jié)果與書上結(jié)論相反,
    請(qǐng)大家?guī)臀铱纯吹降自趺椿厥?我用的hibernate3.0,代碼如下:



    package mypack;

    import org.hibernate.Query;
    import org.hibernate.Session;
    import org.hibernate.Transaction;
    import sessionfactory.HibernateSessionFactory;

    public class test2 {

    ?/**
    ? * @param args
    ? */


    ?public static void main(String[] args) {
    ? //儲(chǔ)存插入記錄的id
    ??int insertid;
    ??//新建實(shí)例
    ??TUser insertuser = new TUser();
    ??insertuser.setName("name1");
    ??insertuser.setResume("resume1");
    ??//插入實(shí)例
    ??Session session = HibernateSessionFactory.getSession();
    ??Transaction tx = session.beginTransaction();??
    ??session.save(insertuser);
    ??insertid = insertuser.getId();
    ??tx.commit();
    ??session.close();
    ??
    ??// 裝載插入的實(shí)例
    ??session = HibernateSessionFactory.getSession();
    ??TUser user = (TUser) session.load(TUser.class, new Integer(insertid));
    ??System.out.println("裝載實(shí)例成功,id==>" + user.getId());
    ??tx = session.beginTransaction();
    ??// 刪除插入的實(shí)例
    ??String hql = "delete TUser where id = "+insertid;
    ??Query query = session.createQuery(hql);
    ??query.executeUpdate();
    ??tx.commit();
    ??// 讀取刪除的實(shí)例,拋出異常
    ??user = (TUser) session.load(TUser.class, new Integer(insertid));
    ??System.out.println("讀取緩存中存放的id成功, id==>" + user.getId());
    ??// 捕捉異常
    ??try {
    ???System.out.println(user.getName());
    ??} catch (org.hibernate.ObjectNotFoundException e) {
    ???System.out.println("代碼user.getname()發(fā)生異常,因?yàn)樵搶?shí)例已經(jīng)被刪除");
    ???System.out.println(e.toString());
    ???System.out.println("結(jié)論:Query.execxuteUpdate()方法刪除數(shù)據(jù)是緩存同步的");
    ??}
    ??session.close();
    ?}
    }


    打印信息如下:

    Hibernate: insert into tuser (name, resume) values (?, ?)
    裝載實(shí)例成功,id==>43
    Hibernate: delete from tuser where id=43
    讀取緩存中存放的id成功, id==>43
    Hibernate: select tuser0_.id as id0_, tuser0_.name as name0_0_, tuser0_.resume as resume0_0_ from tuser tuser0_ where tuser0_.id=?
    代碼user.getname()發(fā)生異常,因?yàn)樵搶?shí)例已經(jīng)被刪除
    org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [mypack.TUser#43]
    結(jié)論:Query.execxuteUpdate()方法刪除數(shù)據(jù)是緩存同步的
    posted on 2007-01-16 18:18 庸世俗才 閱讀(854) 評(píng)論(0)  編輯  收藏

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 又粗又硬又黄又爽的免费视频| 亚洲av乱码中文一区二区三区| 免费一级特黄特色大片在线 | 又黄又爽一线毛片免费观看| 日本在线看片免费人成视频1000| 日本一区二区三区在线视频观看免费| 亚洲国产成人九九综合| 亚洲色中文字幕无码AV| 免费一级做a爰片性色毛片| 999国内精品永久免费视频| 精品亚洲永久免费精品| ww在线观视频免费观看w| 天天综合亚洲色在线精品| 在线亚洲午夜片AV大片| 久久亚洲精品人成综合网| 亚洲AV无码一区二区二三区软件| 亚洲成AV人在线观看网址| 国产成人免费一区二区三区| 人禽杂交18禁网站免费| 在线视频免费观看爽爽爽| 最近中文字幕高清免费中文字幕mv| 在线观看特色大片免费网站| 三级毛片在线免费观看| 三上悠亚在线观看免费| 国产精品成人免费观看| 国产三级在线免费观看| caoporn国产精品免费| EEUSS影院WWW在线观看免费| a一级毛片免费高清在线| 国产精品免费视频观看拍拍| 国产精品福利在线观看免费不卡| 手机永久免费的AV在线电影网| 特黄aa级毛片免费视频播放| 免费大片黄在线观看| 日韩a毛片免费观看| 一区二区三区免费视频观看 | 亚洲无码视频在线| MM131亚洲国产美女久久| 日韩一卡2卡3卡4卡新区亚洲| 伊人久久大香线蕉亚洲五月天| 狠狠色伊人亚洲综合成人|