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()方法返回的代理对象在初始化时抛出异常。

  • 相关阅读:
    在归并排序中对小数组采用插入排序实现代码
    PAT 1032. Sharing
    1031. Hello World for U
    PAT 1030. Travel Plan
    PAT 1029. Median
    PAT 1028. List Sorting
    PAT 1027. Colors in Mars
    PAT 1026. Table Tennis
    PAT 1025. PAT Ranking
    Several Important Commands in GMT
  • 原文地址:https://www.cnblogs.com/derry9005/p/4992907.html
Copyright © 2011-2022 走看看