• 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.通过从数据库中加载该对象然后删除,可以进行判断进行避免异常,提高程序的健壮

     

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

  • 相关阅读:
    P2494 [SDOI2011]保密 最小割
    P2765 魔术球问题
    [CTSC2008]祭祀river
    CF311E Biologist
    P4177 [CEOI2008]order
    函数的形参和实参
    python字符编码
    源码安装Vim并配置YCM自动补全插件
    Python基础练习之购物车
    Python字符串的所有操作
  • 原文地址:https://www.cnblogs.com/wuyx/p/7919454.html
Copyright © 2020-2023  润新知