请问一下Hibernate支持修改跟踪吗 如linq to sql 在update时可以取到原值新值

解决方案 »

  1.   

    Hibernate是持久层框架,面向对象的方式对数据库进行DML操作。首先你要了解持久化类的三个状态以及三个状态之间的转换条件。1。瞬时状态:不带有唯一标识列的对象(简单的理解)。例如在添加之前,实例化一个类的时候就是瞬时状态
    2。持久化状态:带有唯一标识列,并且数据与数据库中的数据根据唯一标识列保持同步。(HibernateSessionFactory关闭session后变为离线状态)
    3。离线状态:HibernateSessionFactory关闭以后持久化类变为离线状态,虽然仍带有唯一标识列,但是已经不与数据库中数据保持同步。(update操作可将其从离线状态变为持久化状态)离线状态的对象仍然存在于系统内存中,长时间不用的话会被自动释放掉所以说:持久化状态是更新后的数据
      

  2.   

    传智播客的那个hibernate的免费视频  第五讲 很详细  我下了看了的
      

  3.   

    更新前记录一次(即根据ID查询出的对象)-->原值
    更新后记录一次 -->新值