(补充)06.Hibernate持久化类&持久化对象

持久化类:就是一个Java类(JavaBean),这个类与表建立映射关系就可以成为是持久类

  持久化类 = JavaBean + xxx.hbm.xml

  编写规则:

  • 1.提供一个无参数,public访问控制符的控制器  --底层需要反射
  • 2.提供一个标识属性,映射数据表主键字段  --唯一标识OID,数据库通过主键,Java对象通过地址确定对象,持久化类通过唯一标识OID确定记录
  • 3.所有属性提供public访问控制符的get,set方法
  • 4.标识属性应尽量使用基本数据类型的包装类型。(使用long不使用int),在封装存储到数据库是空值为null

持久化对象:持久化类实现的对象

持久化对象的三种状态:

  • 1.瞬时态  --没有持久化标识OID,没有被纳入到Session对象管理

    获得瞬时态对象:

User user = new User();

    瞬时态-->持久态:

save() / saveOrUpdate();

    瞬时态-->脱管态:

user.setId(1);
  • 2.持久态  --有持久化标识OID,被Session对象管理

    获得持久化对象:

get() / load() ;

    持久化-->瞬时态

delete();    //比较有争议,进入特殊的状态(删除态,Hibernate不建议使用)

    持久化-->托管态

session.close() / evict() / clear() ;
  • 3.脱管态  --有持久化标识OID,没有被纳入Session对象管理

    获得脱管态对象:不建议直接获得脱管态对象

User user = new User();
user.setId(1);

    脱管态-->持久态

update() / saveOrUpdate() / lock()

    脱管态-->瞬时态

user.setId(null);

注意:持久态的持久化对象具有自动更新数据库的能力!!

   Hibernate的一级缓存--->>>Session的缓存和快照

posted @ 2017-04-26 13:10  NEWHOM  阅读(644)  评论(0编辑  收藏  举报