zoukankan      html  css  js  c++  java
  • 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()方法返回的代理对象在初始化时抛出异常。

  • 相关阅读:
    .net4.5使用async和await异步编程实例
    并行开发系列 Plinq等
    改善C#程序的建议9:使用Task代替ThreadPool和Thread
    C# Task 用法
    Task
    C#委托的介绍(delegate、Action、Func、predicate)(转)
    ACTION与FUNC
    C#二叉树简易实例
    一些简单的算法
    教你如何写thinkphp多表查询语句
  • 原文地址:https://www.cnblogs.com/derry9005/p/4992907.html
Copyright © 2011-2022 走看看