Hibernate夜未眠(下)
??? 又見凌晨時分...
??? 我的
??? H...
??? ibernate拾錦...
21、session激發觸發器
???如果一個session激發一個觸發器,由于觸發器對session是透明的,一次造成數據不一致。
??? 解決方法:調用session的flush()方法和refresh()使其同步;
??? 由于使用觸發器使得在update時候無法比較屬性是否發生變化。
??? 解決方法:在class元素中設置select-before-update為true。
22、精粒度對象模型
??? 從一類中抽象出來的單獨類,提高代碼重用性,被抽象出來的類在映射文件中定義為<component>,無OID,必須依賴父類。
23、session三種檢索類型
??? a、load()跟get()都以OID加載
?????? Customer customer = (Customer)session.load(Customer.class,new Long(1));//同get()方法
??? b、find()方法通過HQL進行檢索(Hibernate 3# 取消該方法)
?????? List customeLists = session.find("from Customer as c where c.id = 1);
24、延遲檢索策略(Hibernate 3# 默認為true)
??? class種lazy為true時設置延遲檢索,load方法僅返回代理類實例,在第一次使用才加載該實例所有數據,只對load方法有效。
25、HQL檢索方式
??? List result = session.createQuery("HQL language")
?????????????????? .setString("customerName","improviser")
?????????????????? .setInteger("customerAge",23)
?????????????????? .list();
26、QBC檢索方式
??? QBC由Criteria和Criterion接口、Expression類組成,支持運行時生成查詢語句。Expression提供查詢靜態方法,返回Criterion對象,Criteria的add方法加入Criterion對象,并以list()執行查詢,返回查詢結果。
27、QBE檢索方式
??? 先創建一個對象模板,再檢索所與該模板相同對象,Example創建一個Criterion對象,把Example對象中不為null的屬性作為查詢條件,QBE只支持"="和"like"比較。
28、分頁查詢
??? query.setFirstResult(0);//從第一頁開始檢索
??? query.setMaxResults(10);//最多檢出10條記錄
29、字符配匹模式
??? 字符串通配符為"%"和"_",中文字應為"%%"配匹;在QBC中可以用MatchMode的靜態常量實例來設定字符串模式,如Expression.like("name","i",MatchModle.START))。
30、事務一般用法
?1?????try
?2? ????{
?3????????tx?= ?session.beginTransaction();
?4? ???????
?5? ???????tx.commit();
?6?????}catch (Exception?e)
?7? ????{
?8????????if(tx!=null )
?9??????????try {
10? ??????????????tx.rollback();
11?????????????}catch (HibernateException?ex{}
12?????}finally
13? ????{
14??????????try {
15? ??????????session.close();
16?????????????}catch (){}
17? ????}
?2? ????{
?3????????tx?= ?session.beginTransaction();
?4? ???????

?5? ???????tx.commit();
?6?????}catch (Exception?e)
?7? ????{
?8????????if(tx!=null )
?9??????????try {
10? ??????????????tx.rollback();
11?????????????}catch (HibernateException?ex{}
12?????}finally
13? ????{
14??????????try {
15? ??????????session.close();
16?????????????}catch (){}
17? ????}
???? 隨著事務提交,我的“夜未眠”也全部提交完成,沒有重點,只有基本點,沒有高難性,只有實用性。
???? ...
???? 在這中秋過后的季節,仍吹著夏天的風,似乎讓我們絲毫無法感受到冬天在四季中的份額,當夏日依依不舍流連忘返不愿離去,我想,我喜歡的是秋天的清爽;我想,我更喜歡的是冬天的到來;我想,我不能再如此未眠...
???? 二零零七年十月寫于廣州
??? (轉載請注明出處)
?
鳳凰涅槃/浴火重生/馬不停蹄/只爭朝夕
???? 隱姓埋名/低調華麗/簡單生活/完美人生
posted on 2007-10-08 00:42 poetguo 閱讀(1943) 評論(5) 編輯 收藏 所屬分類: Hibernate