• hibernate的session对象核心方法注意的问题


    1.session.save()方法

      1).session.save()方法会使一个对象从临时状态转变为持久化状态。

      2).session.save()方法会赋予持久化对象的OID属性一个ID值,以对应数据库该条数据。

      3).在session.flush()被调用时,session.save()方法会发送一条insert SQL语句。

      4).持久化对象的OID值不能被修改,尝试修改会抛出异常。

    2.session.persist()方法

      1).session.persist()和save()方法的区别在于,如果临时对象的OID属性已经有ID值了,则不会执行insert语句,而会抛出异常。save()方法会忽略这个已有的ID值继续insert,然后再根据生成的ID覆盖掉已有的ID。

    3.session.get()和session.load()方法

      1)两者都会查询一条数据,返回该数据的持久化对象。

      2)session.get()方法在调用后立即返回持久化对象,session.load()方法会返回一个代理对象,在对象的方法属性被调用时,再初始化加载该对象,实现延迟加载。

      3)session.load()的代理对象如果没能完成初始化,而session.close()方法被调用了。则尝试加载时会抛出异常。session.get()方法得到的持久化对象在session.close()后依然可以使用,只是对象状态发生了变化。

      4)如果查询不到值,session.get()方法返回null,session.load()方法返回的代理对象在初始化时抛出异常。

  • 相关阅读:
    nsmutableset
    数组建立 不可变数组 排序 遍历
    字符串截取 拼接 转换 长度 查询 比较
    字典排序
    数字字典结合
    可变字典
    字典
    可变字符串
    oc block排序
    oc中文首字母排序
  • 原文地址:https://www.cnblogs.com/derry9005/p/4992907.html
Copyright © 2020-2023  润新知