Hibernate Session 生命周期|学习笔记-阿里云开发者社区

开发者社区> 学堂小助手> 正文

Hibernate Session 生命周期|学习笔记

简介: 快速学习 Hibernate Session 生命周期
+关注继续查看

开发者学堂课程【Java 面试疑难点串讲 3:开发工具及框架:Hibernate Session 生命周期】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/26/detail/552


Hibernate Session 生命周期


Hibernate 里面没有所谓的 Session 生命周期。因为 Session 严格来讲就是指的每-个用户,而如果是实体层里面把 Session 有两点作用(基于 Hbernate)。

 

一个是维护对象的状态,也就是说持久态问题:如果现在使用了 Session 对象的get().load() 方法进行了某一个数据查询的时候,默认情况下只要 Sssion 不关闭,那么就表示该 Session 中的对象直与数据库中的实例关联,那么这个时候如果你调用了 POJO 类的 setter 方法修改的数据。

就会引起据表中对应数据行的数据改变,这个就是持久态的设计而这种设计也是整个 Hibernate 最烂的一点。但是如果倒退到十年前,这就是最好的设计,因为此设计与 EB (ntit Bean) 效果是一样的。

还有一个是进行一级缓存使用的:指的是如果现在要进行 get().load() 数据查询的时候,只要该数据查询了一次,并且在 Session 不关闭的情况下续重复使用,那么对于 Hibernate 而是不会继续重复发出查询指令的。

而是会将对象默认保存在内存里面,如果发现有样的主键查询。那么就直接通过内存加载。

Hibernate 的 Session 是在使用的时候通过 SessionFactory 打开 (Spring 整合的时候也是使用 SessionFactory 打开),这个打开和关闭自动的在你使用之前和之后自动处理操作。

 

这里面有一个问题:在 Spring 与 Hibernate 整合的时候由于存在有一个数据的延迟加载机制,所以在 Spring 里面会提供有一种策略:“OpenlnView" 指的是Hibernate 的 Session 延迟到页面显示完毕后在进行关闭。

 

这样就解决了数据的级联显示操作。但是这种处理会对事务控制造成困难,所以此类开发好像是没有在实际的工作中出现过的。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
JAVA CDI 学习(4) - @Alternative/@Default/@Any & Extension
前面几节学习到的CDI内容,基本上都是hard-code,以硬编码的方式在代码里指定注入类型,这并非依赖注入的本意,依赖注入的优势之一在于“解耦”,这一节我们将学习如何利用配置来动态注入的类型及属性初始化。
744 0
java线程学习2——线程的生命周期
    该图摘自《疯狂的java讲义》,该书讲述的线程很详细。   其中新建状态和死亡状态的线程的isAlive属性均返回false,值得注意的是对死亡的线程调用start方法或 对新建的线程调用两次start 方法均会抛出illegalThreadStateException异常。  
953 0
RCP学习:Bundle的生命周期
Bundle State Description INSTALLED The bundle has been successfully installed. RESOLVED All Java classes that the bundle needs are available.
568 0
我的hibernate学习笔记(之三)
五、Hibernate 主键策略( 上面的步骤三的一部分)              主键:在关系数据库中,主键用来标识记录并保证每条记录的唯一性( 一般可保证全数据库唯一) 。必须满足以下条件:          1)不允许为空。
894 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
12071 0
Hibernate 系列 学习笔记 目录 (持续更新...)
  前言:   最近也在学习Hibernate,遇到的问题差不多都解决了,顺便把学习过程遇到的问题和查找的资料文档都整理了一下分享出来,也算是能帮助更多的朋友们了。   最开始使用的是经典的MyEclipse,后面我用的是JetBrains的IDEA了,个人比较喜欢这些快捷键。
940 0
1394
文章
0
问答
来源圈子
更多
技术图谱:由专家组参与技术图谱的绘制与编写,知识与实践的结合让开发者们掌握学习路线与逻辑,快速提升技能 电子书:电子书由阿里内外专家打造,供开发者们下载学习,更与课程相结合,使用户更易理解掌握课程内容 训练营:学习训练营 深入浅出,专家授课,带领开发者们快速上云 精品课程:汇集知识碎片,解决技术难题,体系化学习场景,深入浅出,易于理解 技能自测:提供免费测试,摸底自查 体验实验室:学完即练,云资源免费使用
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载