您的位置:首页 > 数据库

hibernate 实体对象的三种状态

2009-05-11 22:37 323 查看
     这里实体对象,特制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对象包含了对应数据库的主键信息。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息