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

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

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

    Java信徒

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      2 Posts :: 1 Stories :: 0 Comments :: 0 Trackbacks

    深入淺出Hibernate P281講到使用Hibernate3的Bulk delete/update方式刪除記錄時,寫了段代碼證明這種刪除方式不能緩存同步,會從緩存中讀取出數據庫已經刪除的信息,我依葫蘆畫瓢寫了段代碼,結果與書上結論相反,
    請大家幫我看看到底怎么回事,我用的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) {
    ? //儲存插入記錄的id
    ??int insertid;
    ??//新建實例
    ??TUser insertuser = new TUser();
    ??insertuser.setName("name1");
    ??insertuser.setResume("resume1");
    ??//插入實例
    ??Session session = HibernateSessionFactory.getSession();
    ??Transaction tx = session.beginTransaction();??
    ??session.save(insertuser);
    ??insertid = insertuser.getId();
    ??tx.commit();
    ??session.close();
    ??
    ??// 裝載插入的實例
    ??session = HibernateSessionFactory.getSession();
    ??TUser user = (TUser) session.load(TUser.class, new Integer(insertid));
    ??System.out.println("裝載實例成功,id==>" + user.getId());
    ??tx = session.beginTransaction();
    ??// 刪除插入的實例
    ??String hql = "delete TUser where id = "+insertid;
    ??Query query = session.createQuery(hql);
    ??query.executeUpdate();
    ??tx.commit();
    ??// 讀取刪除的實例,拋出異常
    ??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()發生異常,因為該實例已經被刪除");
    ???System.out.println(e.toString());
    ???System.out.println("結論:Query.execxuteUpdate()方法刪除數據是緩存同步的");
    ??}
    ??session.close();
    ?}
    }


    打印信息如下:

    Hibernate: insert into tuser (name, resume) values (?, ?)
    裝載實例成功,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()發生異常,因為該實例已經被刪除
    org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [mypack.TUser#43]
    結論:Query.execxuteUpdate()方法刪除數據是緩存同步的
    posted on 2007-01-16 18:18 庸世俗才 閱讀(853) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 两个人看的www视频免费完整版| 亚洲五月综合缴情婷婷| 黄色毛片免费在线观看| 国产无遮挡色视频免费视频| 亚洲大成色www永久网址| 四虎在线免费视频| 亚洲ts人妖网站| 性做久久久久久久免费看| 自拍日韩亚洲一区在线| 成年轻人网站色免费看| 亚洲精品宾馆在线精品酒店| 成人午夜18免费看| 日韩亚洲人成网站| 亚洲精品无码日韩国产不卡?V| 一级毛片试看60分钟免费播放| 国产成人精品久久亚洲| 免费无码成人AV在线播放不卡| 亚洲va乱码一区二区三区| 四虎免费在线观看| 免费毛片毛片网址| 亚洲日韩精品A∨片无码| 人妻无码久久一区二区三区免费| 亚洲福利一区二区精品秒拍| 成年大片免费视频| 美女免费精品高清毛片在线视| 激情综合色五月丁香六月亚洲| 国产一精品一av一免费爽爽| 亚洲国产成人精品无码区在线秒播 | 国产成+人+综合+亚洲专| 24小时日本在线www免费的| 日韩色日韩视频亚洲网站| 亚洲精品成人a在线观看| 国产va在线观看免费| 亚洲一区二区三区高清不卡| 免费国内精品久久久久影院| 91福利免费网站在线观看| 叮咚影视在线观看免费完整版| 日韩亚洲Av人人夜夜澡人人爽| 毛片免费在线视频| 国产精品免费大片一区二区| 亚洲另类春色校园小说|