zoukankan      html  css  js  c++  java
  • Hibernate的工作流程以及三种状态

    Hibernate的工作流程:

    1. 读取并解析配置文件

    2.读取并解析映射信息,创建SessionFactory 

    3. 打开Sesssion 

    4.创建事务Transation 

    5. 持久化操作

    6.提交事务 

    7.关闭Session 

    8. 关闭SesstionFactory 

     

     

     

    Hibernate中bean 的三种状态

     

    Hibernate对象分为三种状态:瞬时态(new 出来的或者实例化时session无关的),

    持久态(session关联)与游离态(曾经与session关联)。其中持久态的对象是PO

    ,瞬时态、托管态的对象可作为VO。(PO不应该直接用作v层)所以在使用中应该注意三态的转化。

    如:

    在进行数据操作的一系列过程中,save或者saveorupdate操作可以把瞬时态或者游离态的对象转换成持久态,而

    delete或者session的close、flush等操作将会把session相关联的持久态对象转换成游离态。

     

     

    Hibernate对象的状态和生命周期

     

    使用new操作符初始化的对象是一个瞬时态的(Transient)

    (没有任何跟数据库表相关联的行为,只要应用不再引用这些对象,它们的状态就会丢失,并由垃圾回收机制回收);

    瞬时态对象经过save(),saveOrUpdate会转换成持久态,由session统一管理,持久态对象的操作与数据库同步;

    持久态对象经过evict(),close(),clear()等会转换成游离态,这时虽然被持久化,但是不在session缓存中,通过

    lock(),update(),saveOrUpdate又会转换成持久态。 通过get(),load(),find(),iterate()

    获得的对象直接就是持久态的。

     

     

  • 相关阅读:
    剖析HBase负载均衡和性能指标
    Hadoop大数据挖掘从入门到进阶实战
    实战Kafka ACL机制
    论文笔记系列--MnasNet:Platform-Aware Neural Architecture Search for Mobile
    在 Vim 中优雅地查找和替换
    VIM的列编辑操作
    理解Pytorch中LSTM的输入输出参数含义
    Python为什么要用抽象类(abc模块)?
    概率密度估计介绍
    Docker永久挂载本地目录
  • 原文地址:https://www.cnblogs.com/fifiyong/p/6390699.html
Copyright © 2011-2022 走看看