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

hibernate的session对象核心方法注意的问题的更多相关文章

  1. Hibernate Session对象核心方法

    1. 持久化对象的状态: 站在持久化的角度,Hibernate 把对象分为四种状态:持久化状态,临时状态,游离状态,删除状态 Session 的特定方法能使对象从一个状态转到另一个状态 临时对象: 在 ...

  2. Hibernate Session的delete()方法

    本文介绍Hibernate Session的delete()方法.delete()方法用于从数据库中删除与Java对象对应的记录.对应游离对象和持久化对象,delete语句会做出不同的反应. AD:  ...

  3. Hibernate中的session对象update方法的使用

    使一个游离对象转变为持久化对象.例如以下代码在session1中保存了一个Customer对象,然后在session2中更新这个Customer对象: Customer customer = new ...

  4. Hibernate之Session对象的相关方法以及持久化对象的状态

    一.持久化对象的状态        站在持久化的角度, Hibernate 把对象分为 4种状态: 持久化状态,临时状态,游离状态,删除状态.Session 的特定方法能使对象从一个状态转换到另一个状 ...

  5. hibernate之Session对象

    Session对象:数据库的核心对象 增删改查 ...java public class UserDao { public void addUser(User user) { //使用hibernat ...

  6. Hibernate区分不同对象的方法

    1.关系数据库按主键区分不同记录. create table CUSTOMERS (ID int promary key not null, NAME varchar(15));     insert ...

  7. hibernate 关于session的update方法

    先看写代码的方法: @Test     public void testUpdate3() {                         Teacher t = new Teacher();   ...

  8. Hibernate中session的save方法问题

    今天在使用session.save(),进行插入数据操作时,一直没有成功,也没有报错.后来发现是因为没有创建事务,提交事务的原因 你对flush和commit的意思没有理解到:1,flush代表刷新, ...

  9. Hibernate 通过 Session 操纵对象

    Session 概述 •Session 接口是 Hibernate 向应用程序提供的操纵数据库的最主要的接口, 它提供了基本的保存, 更新, 删除和加载 Java 对象的方法. •Session 具有 ...

随机推荐

  1. Python 下的unittest测试框架

    unittest测试框架,直接上图吧: data:数据:主要格式为CSV:读取方式:csv.reade: public:封装的模块:通用的模块单独封装,所需参数设置为变量: testcase:测试用例 ...

  2. MWeb 1.3.7 发布!增加发布到 Wordpress 等支持 MetaWeblog API 的服务,如:Wordpress 博客、新浪博客、cnblogs、oschina。

    MWeb 1.3.7 版的新功能 增加发布到 Wordpress 等支持 Metaweblog API 的服务,目前经测试过的有: Wordpress 博客.新浪博客.cnblogs.oschina. ...

  3. python中的GIL(全局解释锁)多线程能够提升效率

    预启动的时候,应用程序仍然会调用 OnLaunched 方法的,在 OnLaunched 方法调用之后,会马上发生 Suspending 事件,随后应用就会暂停. 我先基于develop主分支拉出一个 ...

  4. 分布式集群搭建(hadoop2.6.0+CentOS6.5)

    摘要:之前安装过hadoop1.2.1集群,发现比较老了,后来安装cloudera(hadoop2.6.0),发现集成度比较高,想知道原生的hadoop什么样子,于是着手搭建一个伪分布式集群(三台), ...

  5. Leetcode: Minimum Unique Word Abbreviation

    A string such as "word" contains the following abbreviations: ["word", "1or ...

  6. iptables参数详解

    iptables参数详解 搬运工:尹正杰 注:此片文章来源于linux社区. Iptalbes 是用来设置.维护和检查Linux内核的IP包过滤规则的. 可以定义不同的表,每个表都包含几个内部的链,也 ...

  7. python css基本操作

    1. 概述 css是英文Cascading Style Sheets的缩写,称为层叠样式表,用于对页面进行美化. 存在方式有三种:元素内联.页面嵌入和外部引入,比较三种方式的优缺点. 语法:style ...

  8. Linux下gcc与gdb简介

    gcc编译器可以将C.C++等语言源程序.汇编程序编译.链接成可执行程序.gdb是 GNU 开发的一个Unix/Linux下强大的程序调试工具. linux下没有后缀名的概念.但 gcc 根据文件的后 ...

  9. 【转】Android各大发布市场

    前言 如果只有一个或者少许的两三个Android市场,本文也没用存在的必要性,本文谨献给同在Android奋战的同仁. 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnbl ...

  10. Introduction to Big Real Mode

    转自Merck Hung merck@olux.org, 洪豪謙 应朋友的要求, 希望我花一点时间整理一下 x86 Big Real Mode 的文章.另外也发现, 身边似乎有一些朋友也准备要开始从事 ...