Hibernate夜未眠(下)

 
    又见凌晨时分...

    我的

    H...
    ibernate拾锦...

21、session激发触发器

   如果一个session激发一个触发器,由于触发器对session是透明的,一次造成数据不一致。
    解决方法:调用session的flush()方法和refresh()使其同步;
    由于使用触发器使得在update时候无法比较属性是否发生变化。
    解决方法:在class元素中设置select-before-update为true。

22、精粒度对象模型
    从一类中抽象出来的单独类,提高代码重用性,被抽象出来的类在映射文件中定义为<component>,无OID,必须依赖父类。</component>
23、session三种检索类型
    a、load()跟get()都以OID加载
       Customer customer = (Customer)session.load(Customer.class,new Long(1));//同get()方法
    b、find()方法通过HQL进行检索
       List customeLists = session.find("from Customer as c where c.id = 1);

24、延迟检索策略
    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、事务一般用法 
java 代码
  1.  try{   
  2.     tx = session.beginTransaction();   
  3.             
  4.     tx.commit();   
  5.  }catch(Exception e){   
  6.      if(tx!=null)   
  7.        try{   
  8.          tx.rollback();   
  9.        }catch(HibernateException ex{}   
  10. }finally{   
  11.        try{   
  12.            session.close();   
  13.        }catch(){}   
  14. }   


     随着事务提交,我的“夜未眠”也全部提交完成,没有重点,只有基本点,没有高难性,只有实用性。
     ...

     在这中秋过后的季节,仍吹着夏天的风,似乎让我们丝毫无法感受到冬天在四季中的份额,当夏日依依不舍流连忘返不愿离去,我想,我喜欢的是秋天的清爽;我想,我更喜欢的是冬天的到来;我想,我不能再如此未眠...
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值