分享

hibernate实体对象三种状态与saveOrUpdate方法

 英昌知识汇聚馆 2011-11-21
1.对象状态:
   瞬时(transient):数据库中没有数据与之对应,超过作用域会被jvm垃圾回收器回收,一般是new出秋且与session没有关联的对象
   持久(persistent):数据库中有数据与之对应,当前与session有关联,并且相关联的session没有关闭,事务没有提交;持久对象
  状态发生改变时,在事务提交时会影响到数据库(hibernate能检测到)。
   脱管(detached):数据库中有数据与之对应,但当前没有session与其之关联【session已关闭】,脱管对象发生改变,hibernate不能检测到。这种装态,宜用update()方法。
   
   当调用saveOrUpdate()方法后,对象就变成持久装态。这个方法的意义是,hibernate会根据id的值来确定是调用save()【id无值时.整型就看是否为0,string就看是否为null】还是调用update()【id有值时】,
   当调用merge()方法后,对象就变成脱管状态
   
   

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多