zoukankan      html  css  js  c++  java
  • Hibernate

    cascade属性:
    默认为none,代表不级联。
    级联是指操作主对象时,对关联的对象也做相同的操作。
    可设为:delete, save-update, all, none ...--

    一般是对象只归归另一个管时用级联(一对多,一对一);多对1,多对多不级联

    对象的状态:

    // save():把临时状态变为持久化状态(交给Sessioin管理)
    // 会生成:insert into ...

    // update():把游离状态变为持久化状态
    // 会生成:update ...
    // 在更新时,对象不存在就报错

    // saveOrUpdate():把临时或游离状态转为持久化状态
    // 会生成:insert into 或 update ...
    // 在更新时,对象不存在就报错
    // 本方法是根据id判断对象是什么状态的:如果id为原始值(对象的是null,原始类型数字是0)就是临时状态,如果不是原始值就是游离状态。

    // delete():把持久化或游离转为删除状态
    // 会生成:delete ...
    // 如果删除的对象不存在,就会抛异常

    // load():获取数据,是持久化状态
    // 会生成:select ... where id=?
    // load()后返回的是一个代理对象,要求类不能是final的,否则不能生成子类代理,就不能使用懒加载功能了。
    // 让懒加载失效的方式:一、把实体写成final的;二、在hbm.xml中写<class ... lazy="false">
    // 不会马上执行sql语句,而是在第1次使用非id或class属性时执行sql。
    // 如果数据不存在,就抛异常:ObjectNotFoundException

    游离和持久化都是在数据库中有记录的,临时是刚New出来的,在session的管理中,数据库没记录;游离是session关闭之后从session容器关闭后被赶出来的对象状态

     --------------------------------------------------------

    Session中的方法。
    对象的状态:
    Session中 数库中
    -----------------------
    临时 无 无
    持久化 有 最终会有
    游离 无 有
    删除 调用了delete()方法后


    1,操作实体对象的
    save()
    update()
    saveOrUpdate()
    delete()

    2,操作缓存的
    clear() 清空Session缓存,不会执行sql语句。
    evict()
    flush() 马上执行sql语句,不会清楚Session缓存。

    3,查询实体对象的
    get()
    load()
    createQuery()
    createCriteria()

    ------------------------


    加载方式 返回值 如果数据不存在
    ---------------------------------------------------------
    get 立即加载 真实对象或null 返回null
    load 延迟加载 代理对象 抛异常

  • 相关阅读:
    般若与慈悲
    四谛
    Mysql:8.0.19:新特性、过期、已经删除的
    Mysql:As of 8.0.16:--validate-config:新增的服务器配置验证特效:good!
    Mysql:FIPS:Federal Information Processing Standards 140-2:世上有不透风的墙么?!
    ASP.NET Core WebApi使用Swagger生成API说明文档【xml注释版】
    ASP.NET Core WebApi使用Swagger生成API说明文档【特性版】
    Idea导入Eclipse的Web项目并部署到Tomcat
    在.Net中使用RedLock实现分布式锁
    【转】在C#中使用Json.Net进行序列化和反序列化及定制化
  • 原文地址:https://www.cnblogs.com/daxiong225/p/4689918.html
Copyright © 2011-2022 走看看