<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

    2007年2月12日 #

    正在看深入淺出hibernate,上面演示的用hibernate synchronizer自動(dòng)生成的hibernate2版本的dao類,其中的BaseRootDAO類把getSession()方法和createSession()方法都設(shè)置為public,這樣使用session時(shí)可以直接Session session = BaseRootDAO.createSession()方法獲得。
    而我安裝了hibernate synchronizer插件生成的BaseRootDAO類沒有定義createSession()方法,getSession()方法被定義為protected,要獲得session只好新建一個(gè)DAO類實(shí)例,覺得很不方便,不知道為什么把session包裝得這樣嚴(yán)密。

    posted @ 2007-02-12 20:30 庸世俗才 閱讀(682) | 評論 (0)編輯 收藏

    2007年1月16日 #

    深入淺出Hibernate P281講到使用Hibernate3的Bulk delete/update方式刪除記錄時(shí),寫了段代碼證明這種刪除方式不能緩存同步,會從緩存中讀取出數(shù)據(jù)庫已經(jīng)刪除的信息,我依葫蘆畫瓢寫了段代碼,結(jié)果與書上結(jié)論相反,
    請大家?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) {
    ? //儲存插入記錄的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 @ 2007-01-16 18:18 庸世俗才 閱讀(855) | 評論 (0)編輯 收藏

    主站蜘蛛池模板: 亚洲乱码中文字幕久久孕妇黑人| 免费A级毛片无码无遮挡内射| 免费一看一级毛片全播放| 亚洲成a人片在线观看精品| 亚洲三级在线免费观看| 精品亚洲成a人片在线观看| 久久久精品2019免费观看| 亚洲伊人tv综合网色| 1000部免费啪啪十八未年禁止观看| 婷婷精品国产亚洲AV麻豆不片| 国产精成人品日日拍夜夜免费 | 好吊色永久免费视频大全| 亚洲精品网站在线观看不卡无广告 | 男人的天堂网免费网站| 亚洲国产精品一区| 国产电影午夜成年免费视频 | 亚洲综合色丁香麻豆| 免费A级毛片无码无遮挡内射| 亚洲熟妇AV一区二区三区宅男| 拔擦拔擦8x华人免费久久| 国产亚洲高清在线精品不卡| 亚洲av区一区二区三| 国产三级在线免费| 亚洲欧洲国产经精品香蕉网| 女人毛片a级大学毛片免费| 国产成人亚洲综合a∨| 亚洲人成色77777| 黄色成人免费网站| 亚洲AV日韩AV无码污污网站| 久久久久久亚洲精品不卡| 免费无码成人AV在线播放不卡| 国产精品亚洲综合五月天| 亚洲国产精品人人做人人爱| 无码国产精品一区二区免费式芒果 | 亚洲精品你懂的在线观看| 亚洲精品免费网站| 精品久久亚洲一级α| 亚洲AV无码精品无码麻豆| 亚洲欧洲免费无码| 久久性生大片免费观看性| 亚洲中文字幕无码av在线|