hibernate 实体对象的三种状态

     这里实体对象,特制hibernateO/R映射关系中的域对象(即“O”);

     1,Transient(自由状态)

         即实体在内存中自有的存在,没有与数据库记录无关系。

       Tuser tuser = new Tsur();

       tuse.setName("li");

       对象 tuser 就处于 transient 状态

 2   Persistent(持久太)

     处于hibernate框架管理的状态。实体对象的引用将纳入hibernate容器管理。

    对象的变更将固化的数据库。

     Tuser tuser = new Tsur();

       tuse.setName("li");

、、、、、、、、、、、、、

      Transaction tx = new Transaction();

      session.save(tuser);

     此时对象处于Persistent状态。通过session.save改变了状态。同样session.load();加载对象也处于Persistent状态。也同样实体对象纳入了hibernate容器的管理当中。

     简单的说就是某个实体对象与session实例发生关联,并处于session的有效期就处于Persistent状态

3 Detached(游离态)

    session关闭

 

   Transient 状态和Detached状态最大的区别在于 Transient状态下的user对象与数据库表没有对应关系。而Detached状态下的user对象却在库表中存在相应的记录。只不过脱离了session数据操作平台。期状态无法更新到库表中的对应记录。

  简单的说也就是Transient 状态无主键信息,而Detached状态的user对象包含了对应数据库的主键信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值