1.sessionFlush的一些问题
sessionFlush主要工作:1.清理session缓存;2.执行sql
sessionFlush主要在以下情况调用:1.事务commit;2.集合Iterator
一个简单的例子:
session.save(object);
session.flush();在事务提交前显示调用
trans.commit();
当执行 session.save(object)时,并不会发sql语句,而是将对象从瞬时态转换成持久态
当执行session.flush()时,会发sql语句,但是现在数据库里面不一定有数据,为什么呢?
因为数据库隔离级别的原因
隔离级别(Isolation Levels)是指一个事务与另一个事务之间隔离的程度,用于限制在并发条件下数据库交叉存储现象的发生。常见的隔离级别有:
1. 未提交读(READ UNCOMMITED)。事务隔离的最低级别,仅可保证不读物理损坏的数据。
2. 提交读(READ COMMITED)。SQL Server的默认级别,可以保证不读"脏"数据,但会发生不可重复读。
3. 可重复读(REPEATABLE READ)。可以保证读一致性,防止不可重复读现象的发生,但会发生幻象读。
4. 可串行化(SERIALIZABLE)。事务隔离的最高级别,事务之间完全隔离,在该级别上可以保证并发事务均是可串行的。在该隔离级别上不会发生幻象读。
如果是未提交读,那么在flush时,数据库中就会有相应的数据,但是这种隔离级别会造成很多的数据不一致问题
分享到:
相关推荐
5. **持续更新**:随着Hibernate版本的不断升级和发展,本书也在持续更新中,确保读者能够获取最新的技术和最佳实践。 #### 四、适用人群与学习建议 - **适用人群**: - Java开发人员,特别是那些希望深入学习和...
在IT行业中,Hibernate是一个非常重要的Java持久化框架,它简化了数据库操作,使得开发者能够更加专注于业务逻辑,而不是底层的数据存取细节。...在实践过程中不断总结和反思,是提升技术水平的关键。
通过本文档,我们不仅深入了解了 Hibernate 的核心概念和技术细节,还学习了如何有效地使用 Hibernate 来开发高性能的 Java 应用程序。随着对 Hibernate 的不断探索和实践,相信您能够更好地利用其强大的功能,提高...
### Java EE与Hibernate知识点详解 #### 一、Java EE简介 Java EE(Java Platform, Enterprise Edition)是Sun ...在未来的技术发展中,这些技术和框架仍然会持续进化和完善,以适应不断变化的企业需求和技术趋势。
**正文** 《Hibernate API:深度探索与应用实践》 Hibernate,作为Java领域中的一款主流对象关系映射(ORM)框架,极大地简化了...通过不断实践和学习,开发者将能够更好地驾驭Hibernate,为软件开发带来更多的便利。
#### 二、Hibernate JPA 技术细节 ##### 1. Hibernate 与 JPA 关系 从Hibernate 3.2版本开始,该框架全面支持JPA规范。JPA是一个Java标准,旨在简化Java应用中实体对象与数据库表之间的映射关系,而Hibernate则是...
提供的两个CHM文件——hibernate3.1.CHM和Spring2.0.chm,是官方的英文帮助文档,对于深入理解Spring 2.0和Hibernate 3.1的细节、API以及最佳实践具有极大价值。通过阅读这些文档,开发者可以掌握这两个框架的核心...
由于使用了 Hibernate 的自动更新功能,所以无需预先创建数据库表。 环境搭建步骤: 1. **配置监听器**:在 `web.xml` 中添加 `ContextLoaderListener`,用于启动 Spring 的上下文加载。 2. **配置 ...
DAO类负责与数据库进行交互,隐藏了底层的数据访问细节,使得业务层可以更专注于业务处理。 **三、创建Hibernate配置文件** 在使用Hibernate之前,需要配置一个hibernate.cfg.xml文件,该文件包含了数据库连接信息...
本文档将带领读者深入理解 Hibernate 的核心概念和技术细节,帮助大家掌握如何利用 Hibernate 来提高 SQL 查询效率以及优化数据访问逻辑。 #### 二、环境搭建与配置 ##### 2.1 开发环境准备 首先,我们需要创建一...
### Struts + Hibernate + Spring 整合文档 #### 一、简介 在现代软件开发过程中,尤其是企业级应用开发中,Struts、Hibernate 和 Spring...未来随着技术的发展,这些框架也将不断更新和完善,为开发者提供更多便利。
该方案不仅讨论了具体的实现细节,还根据系统实施的效果分析了其优缺点,并总结出了一些开发建议。 #### 关键词 - J2EE - 数据持久化层 - Hibernate - 电子运行维护系统 (E2OMS) #### 引言 数据持久化作为企业级...
**Hibernate框架**:是一个对象关系映射(ORM)工具,简化了Java应用程序与数据库的交互,使得开发者能够更加专注于业务逻辑而不是底层的数据访问细节。 #### 二、Struts + Hibernate + Spring 的整合实践 ##### 1...
在相片管理系统中,Hibernate负责数据的存取,通过简单的对象操作即可实现对数据库的CRUD(创建、读取、更新、删除)操作。使用Hibernate,开发者可以专注于业务逻辑,而不必关心底层数据库的具体细节。 3. **MySQL...
Hibernate支持CRUD(创建、读取、更新、删除)操作,以及事务管理、查询服务等功能。 二、为什么要进行二次封装? 1. 提高效率:虽然Hibernate本身已经减少了SQL的编写,但直接使用Hibernate API仍然存在一定的学习...
本文总结了前端开发实习生的实习经历,涵盖了 Struts、Spring、Hibernate 三个框架的使用和区别,介绍了软件开发过程中的每个细节,并分享了实习生在实习过程中的经验和感悟。 1. Struts 框架: Struts 代表了表示...
- **持续学习与技术跟进**:随着技术的发展,需要不断更新自己的知识体系和技术能力,保持对新技术的好奇心和探索精神。 - **职业规划与发展**:根据个人兴趣和职业目标制定合理的职业发展规划,不断调整和完善自己...
【标题】:在项目中整合Hibernate与Mybatis的共存策略 ...同时使用Hibernate和Mybatis,可以实现优势互补,但需谨慎处理集成细节。开发者应当保持开放心态,不断学习和探索,以适应不断变化的软件开发环境。
通过以上内容可以看出,该论文详细阐述了一个基于SpringMVC+Hibernate+Spring框架的个人博客系统的设计与实现过程,涵盖了系统开发的技术背景、关键技术和实现细节等方面。对于想要了解或学习Java EE技术栈在实际...