OID概述/PO三种状态切换

OID概述理解


l hibernate用于唯一标识一个对象,标识符。WQ

Java标识对象:内存地址 (new 两次,内存地址不同,java不同对象)

数据库标识记录(行):用主键进行标识。

hibernate 提供 OID,将java对象 和 表的主键进行 关联。

18231432_AARP.jpg

hibernate中更关心是数据,而不是java对象本身。hibernate中只要OID相同,认为使用PO对象(持久对象)。OID中存放的表的主键值。

    User user1 = new User() ; user1.setUid(1);

    User user2 = new User() ; user2.setUid(1);

    hibernate中 user1 和 user2 是两个相同的PO对象。


PO/BO/VO

POpersistent object ,用于与数据库交互数据。--dao层  (JavaBean + hbm 

BOBusiness object 业务数据对象。--service

VOValue Object 值对象。--web

开发中:直接使用JavaBean 描述三个对象


对象之间的状态转换图


对象之间的三种状态之间转换 :  

>瞬时态  -----获取直接new就可以

               -----转换持久态:save()保存,SaveOrUpdate

                -----抓换为托管态:set(ID)就可以

18231435_pFaS.jpg

>持久态  -----执行get(),load(),creatQuery(),creatCritreia()获得 

                        都是持久态的对象,执行save()之后转变为持久态

                        执行update之后也是持久态

                -----转换瞬时态 : 当执行delete删除时

                -----转换游离态 : 当session关闭closed或者清除所有clear时


>托管态 ------创建并设置ID值,(有OID的值. 数据库有值,session没有管理 )

              ------转换为瞬时态 : 手动去除OID并且设置为默认值

               ------转换为持久态 : update()、saveOrUpdate 

18231441_oYUV.jpg











转载于:https://my.oschina.net/mickeymouse/blog/518702

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值