Hibernate的session.load()和session.get()有什么分别?
Get会发送查询语句提取数据,而load方法当对象使用时才去数据库查询。
如果未能发现符合条件的记录,get方法返回null,而load方法会抛出一个ObjectNotFoundException。
Load方法可返回实体的代理类实例,而get方法永远直接返回实体类。
load方法可以充分利用内部缓存和二级缓存中的现有数据,而get方法则仅仅在内部缓存中进行数据查找,如没有发现对应数据,将越过二级缓存,直接调用SQL完成数据读取。
★服务器如何判断HttpSession的唯一性?
1.服务器创建HttpSession对象的时候,会为该对象生成一个唯一的ID值,用于区分不同用户的HttpSession对象.
2.服务器响应客户端的时候,会将这个HttpSession的唯一的ID值,通过Cookie写回客户端.
3.客户端再次请求这个域的时候,会将这个HttpSession的唯一的ID值发回给服务器.
4.服务器拿到这个HttpSession的唯一的ID值,通过ID值找到对应的HttpSession对象.
★HttpSession什么情况下会被销毁?
1. session.invalidate();
代码执行: sessionMap.remove(session.getID());
session.invalidate();只是将当前的Session对象从服务器的存储HttpSession对象的Map集合中删除引用,而当前的HttpSession对象还是存在,等待垃圾回收.
2. session.getMaxInactiveInterval(),HttpSession对象的最大存活时间默认1800秒,即30分钟.
当服务器检测到HttpSession已经超过最大存活时间,会将这个HttpSession对象销毁.
在web.xml中配置:
<session-config>
<session-timeout>1</session-timeout> // 分钟
</session-config>
Hibernate的session.load()和session.get()有什么分别?的更多相关文章
- session.load()和session.get()的区别
Session.load/get方 法均可以根据指定的实体类和id从数据库读取记录,并返回与之对应的实体对象. 其区别在于: 如果未能发现 符合条件的记录,get方法返回null, 而load方 法会 ...
- Hibernate中session.get()和session.load()的区别
-- 翻译自https://www.mkyong.com/hibernate/different-between-session-get-and-session-load/ 很多时候你会发现,使用Hi ...
- Hibernate学习(5)- session的get与load方法对比
1.共同点:get和load都是根据Id单条查询获取对象 org.hibernate.Session.load(Class<User> theClass, Serializable id) ...
- 第二节 hibernate session介绍以及session常用方法介绍
原创地址:http://www.cnblogs.com/binyulan/p/5628579.html Session是java应用程序和hibernate框架之间的一个主要接口.它是从持久化服务中剥 ...
- [原创]java WEB学习笔记78:Hibernate学习之路---session概述,session缓存(hibernate 一级缓存),数据库的隔离级别,在 MySql 中设置隔离级别,在 Hibernate 中设置隔离级别
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- hibernate的事务管理和session对象的详解
//开启事务 transaction=session.beginTransaction(); 上面为开启事务 transaction.commit();这个为提交事务 从session对象中获取事务后 ...
- SSH中将hibernate托管给spring获取session的方法
import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.SessionF ...
- Hibernate的懒加载session丢失解决方法
在web.xml加入spring提供的过滤器,延长session的生命周期 <!--Hibernate的懒加载session丢失解决方法 --> <filter> <fi ...
- Hibernate二次学习二----------session.flush、session.doWork
目录 1. session 2. session.flush 3. session.doWork 4. 完整代码 5. 总结 © 版权声明:本文为博主原创文章,转载请注明出处 1. session H ...
随机推荐
- MySQL常见的函数
一.概述 功能:类似于java中的方法 好处:提高重用性和隐藏实现细节 调用:select 函数名(实参列表); 二.单行函数 1.字符函数 concat:连接 substr:截取子串 upper:变 ...
- 商业智能BI与用户行为分析的联系
什么是BI? BI(Business Intelligence)即商业智能,它是一套完整的解决方案,用来将企业中现有的数据进行有效的整合,分析利用企业已有的各种商用数据来了解企业的经营状况和外部环境 ...
- C#依赖注入-初步概念了解
维基百科说:"依赖注入是一种软件设计模式,在这种模式下,一个或更多的依赖(或服务)被注入(或者通过引用传递)到一个独立的对象(或客户端)中,然后成为了该客户端状态的一部分.该模式分离了客户端 ...
- 《Java从入门到精通》学习笔记(详细)
目录 03 Java语言基础 基本数据类型 变量与常量 运算符 类型转换 代码规范 标识符命名规范 常用输入输出 04 流程控制 条件语句 循环语句 循环控制 练习 05 字符串 创建字符串 连接字符 ...
- Eclipse Debug 调试步骤及注意事项
debug方法 第一步:打开java代码文件,在左侧双击鼠标设置断点,或者在左侧右键点击Toggle Breakpoint 第二步:点击eclipse上方的"蜘蛛"按钮,点击deb ...
- Java:List(二)——List、ArrayList、LinkedList
List 模块:java.util.List 说明 List接口,表明一个序列 用法:List <E> ①直接用List承接一个ArrayList或LinkedList List < ...
- Python:Python2和3不同print汉字方式
Python3: 可以直接通过print('你好')输出 Python2: 需在开头加#encoding=UTF-8 不过之前输出的时候即使加了开头一行,也是一些混乱的汉字,一看就知道编码错误,后来我 ...
- Pycharm:控制台输入输出In Out变为<<<
Setting中取消勾选'Use IPython if aviable'
- Xmake 和 C/C++ 包管理
Xmake 是一个基于 Lua 的轻量级跨平台构建工具,关于 Xmake 与构建系统的介绍,我们已经在之前的文章中做了详细的介绍:C/C++ 构建系统,我用 xmake. 如果大家已经对 Xmake ...
- SpringCloudConfig配置使用
目录 SpringCloudConfig 是什么 作用 1.创建Git仓库 2.创建配置中心服务端 创建项目 导入pom 开启@EnableConfigServer YML 测试 全部资源请求方式 3 ...