zoukankan      html  css  js  c++  java
  • Hibernate 对象的生命周期及CRUD操作

    对象状态及生命周期

    1.Transient(瞬时状态):new的对象为瞬时态 session中没有数据,数据库中没有数据。

    2.Persistent(持久状态):被session管理的对象为持久状态,在持久状态下,提交事务,清理缓存时发现session中数据和数据库中数据不一直时,将会把session中的数据更新到数据中 session中有,数据库中也有。

    3.Detached(游离状态|托管状态)  :与session交互过的对象为游离态当事务提交完成,hibernate生命周期结束之后持久合租昂台变为游离状态 session中没有, 数据库中有。

    Save(),Update()

     get()

      get()中id可以是任何类型,但是必须实现序列化接口。查询得到的对象为Object类型,需要强转为自己需要的类型。

    Load()

    get/load的区别:

      1.get会立即查询对象,load在使用时才会查询对象

      2.get找不到对象时返回null,load找不到对象时会抛出ObjectNotFoundException异常。

    delete()

    1.手动构造一个对象,指定其主键,是可以删除该对象的,但是不建议这么使用。
     2.通过从数据库中加载该对象然后删除,可以进行判断进行避免异常,提高程序的健壮

     

    注:本文是在学习期间根据网上视频写的学习笔记,如有侵权请联系删除!

  • 相关阅读:
    Pascal's Triangle II
    Pascal's Triangle
    Best Time to Buy and Sell Stock II
    Best Time to Buy and Sell Stock
    Populating Next Right Pointers in Each Node
    path sum II
    Path Sum
    [转载]小波时频图
    [转载]小波时频图
    [转载]Hilbert变换及谱分析
  • 原文地址:https://www.cnblogs.com/wuyx/p/7919454.html
Copyright © 2011-2022 走看看