• 深入浅出hibernate 学习


    这本书也买了好久,一直没有看,最近用到hibernate,重新看下:

    1.持久层介绍

      讲到两种模式:装饰模式  代理模式(动态代理)

    2.cfg.xml配置

       config  session 

    3.O/R映射

      基本类型

      自定义映射(用户有多个email地址,存放在一个字段)     

      复合主键(两种方式:1.composite-id 实现equals、hashCode 2.自定义pk对象)

      Blob Clob(oracle中由于特殊的实现,需要在insert前,插入空值,读取后再进行操作)

      实体映射策略

          1)面向设计的划分:姓名、联系方式(地址,电话等)

          2)面向性能的划分:用户基本信息、附带信息(例如:图片、附件)h3中可以通过延时加载解决

          3)实体层次设计:商品包含(DVD,BOOK)如何存储

    4.数据关联

      1--n

      n--1

      1--1

      n--n

    5.数据检索

      检索方式:1.criteria  2.detachedCriteria 3.hql(from User group by age 也返回对象)

      加载方式:1.立即 2.延时 3.预先(1条join sql 读取数据) 4.批量(where name in('001','002'))

    6.持久化实现

    生命周期:

    1.自由状态transient   (new 出来的对象,未与hibernate发生关联)

    2.持久状态persistent (已经与hibernate发生关联,如save,load等,有hibernate进行管理)

    3.游离状态detached (session已关闭,或者按规则自行拼凑的一个对象)

    povo pojo

    实体对象识别:

    1.身份识别:主键相同的po,认为是相等的?(如果主键相同,但属性有异,hibernate会自动修改)

    2.equals hashCode:id比对,值比对

    3.脏数据检查:版本比对  

      unsaved-value ?(使用Hibernate的id generator生成主键的话,不需要考虑此选项)

    7.数据缓存

      事务级

      应用级

      分布式(多个appServer)

    8.hibernate数据缓存

      内部缓存(session中的私有map维护)

      二级缓存 (分布式。。。还是算了吧)

     9.collection

    set

    bag idbag

    map

    list

    10.排序

    sort 借助jvm实现

    order by 借助sql实现

    11.回调、拦截、触发器

    lifecycle(onDelete onUpdate) validatable(校验)

    interceptor: 相比lifecycle,同为接口,侵入更少

    sessionFactory.openSession(it);

    listener:未介绍

    12.分页(没什么好讲,实现了各个数据库的特性)

    13.session管理

    ----------------------------------先记录到此,下面的暂时用不到,等项目中有使用再来看书

  • 相关阅读:
    fork安全的gettid高效实现
    TCP_DEFER_ACCEPT的坑
    TCP Linger的坑
    Blade和其他构建工具有什么不同
    在Blade中结合gperftools检查内存泄露
    GraphViz web版
    用户场景分析
    java-二维数组——with 刘童格
    java-四则运算-五-网页版--with刘童格
    java-四则运算-四
  • 原文地址:https://www.cnblogs.com/malaya/p/3880118.html
Copyright © 2020-2023  润新知