Hibernate中Session的几个方法介绍
来源:互联网 发布:nba2013 14总决赛数据 编辑:程序博客网 时间:2024/05/02 05:07
get load
1:get
public Object get(Class clazz, Serializable id) 两个条件 什么样的类, id是多少 就可以拿到类了
根据主键得到类,只是查询操作一般不用管事务
局限性:get方法只能通过id拿到对象 其他查询可以用query hql 和criteria方式
2:load
public Object load(Class clazz, Serializable id)
和get 相似,使用的频率低一些,和get的区别,不会立即访问数据库,等真正使用要查找的类的时候,才会去访问数据库 load返回的永远不为null, 会是一个代理对象
实现细节: 它自己new 了一个继承至需要查询的对象,我们的pojo类不能是final的也是这个原因。
懒加载:
save persist
3,persist
保存 同 save一致
唯一区别: 在不开启事务的时候,persist不产生insert语句,数据库更没有数据了。
4,save
不开启事务时,会产生insert语句,数据库里没有数据。
savaOrUpdate update merge
当我们要保存一个对象,却不知道数据库里有没有的时候,不知道它是瞬时对象,还是脱管对象,就可以用
5 saveOrUpdate
hibernate会自己根据ID(判断ID是否有值,瞬时态的ID是没有值的 整形的id为0是瞬时态 String 的ID为null是瞬时态 可以通过映射文件中的 id 节点中的 unsaved-value 进行配置)和version的值判断对象是否是瞬时对象还是脱管对象,选择调用save 还是update
另外 调用saveOrUpdate后 对象会变成持久态,而merge还是托管态
6.update
更新对象,如果没有记录会出现异常
当对象处于脱管状态的时候,就可以调用更新,然后更新到数据库
7:merge
将对象更新,调用之后还是托管态。
对象状态转移图:
0 0
- Hibernate中Session的几个方法介绍
- Hibernate中Session的几个方法
- Hibernate中Session的flush方法介绍
- Hibernate中Session的几个方法的简单说明
- hibernate Session的几个简单方法
- Hibernate的Session介绍
- Spring中获得Hibernate Session的方法
- Hibernate中session.getconnection()的方法
- hibernate中session的常见方法说明
- Hibernate中session.connection()的替代方法
- Hibernate中session.get()方法的作用?
- Hibernate中Session的核心方法一
- HIbernate中对象的三种状态和session的几个易混淆的方法的区别
- Hibernate中session.get()和session.load()方法的异同
- hibernate session的方法
- Hibernate源码中几个包的作用简要介绍
- Hibernate的SessionFactory、Session介绍
- session的几个主要方法
- QuartZ Cron表达式
- iBeacon系列:三、iBeacon能否精确室内定位等10个技术问题
- 例题10-17 糖果 UVa1639
- 素质
- 项目实施过程中的风险控制
- Hibernate中Session的几个方法介绍
- MySql 学习系列之中文乱码解决方法总结
- 安装php-5.4.38时, 报错误:‘gdIOCtx’ 没有名为 ‘data’ 的成员
- iOS学习笔记(一)——ios搭建开发环境
- 【小常识】Appdata\Local Roaming LocalLow文件夹简介
- poj 1182 食物链 带权并查集
- Android Studio 初体验
- [转载]eclipse中svn的各种图标详解 问号
- 数组第二十四课,模拟ArrayList容器的底层实现,JDK源码分析