深入浅出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管理

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

原文地址:https://www.cnblogs.com/malaya/p/3880118.html