hibernate的生命周期分3个状态(详细在前面文章里):
Transeint(瞬时)
* 没有被session管理
* 在数据库中没有与之匹配的记录
Persistent(持久)
* 纳入session管理
* 在数据库中有与之匹配的记录
* 当属性发生改变,在清理缓存时(脏数据检查)会自动和数据库同步
Detached(离开)
* 没有被session管理
* 在数据库中存在与之匹配的记录
get和load方法的差别?
* get不支持lazy,load在默认情况下支持lazy
* get加载数据,如果不存在返回null,而load返回ObjectNotFoundException异常
Session是一个持久化管理器
分享到:
相关推荐
总结,理解Hibernate3.2中的对象生命周期是有效使用Hibernate的关键。正确管理对象状态,能够避免数据丢失,提高应用程序性能,并减少潜在的并发问题。深入源码和使用专业工具能进一步提升开发效率。
14. **事件监听器**: Hibernate允许注册事件监听器,监听对象的生命周期事件,如加载、保存、更新和删除,以便在这些事件发生时执行自定义逻辑。 15. **延迟加载(Lazy Loading)**: Hibernate支持懒加载策略,只有...
- **Session**: 一次数据库交互的生命周期,不建议跨事务使用。 - **Transaction**: 事务管理,用于包裹一组数据库操作,确保原子性和一致性。 5. **查询语言** - **HQL(Hibernate Query Language)**: ...
- **一级缓存**:每个`Session`对象都包含一个一级缓存,它是线程不安全的,用于存储在该`Session`生命周期内的对象。当`Session`关闭时,缓存中的对象也会被清除。 - **二级缓存**:由`SessionFactory`管理,是跨...
SessionFactory 是持久化操作的核心组件,它在整个 Hibernate 生命周期中保持不变,负责生成 Session。而 Session 是短暂的,每个数据库交互应在一个新的 Session 中进行。Session 提供了持久化上下文,它包含了所有...
它是创建Session的对象工厂,每个应用程序都应该只有一个SessionFactory实例,其生命周期与整个应用的生命周期相同。 - **Session**: 是非线程安全的,每次数据库操作都需要开启一个新的Session,Session的生命周期...
9. **实体状态与生命周期**:阐述Hibernate4中实体的四种状态(瞬时态、持久态、托管态和游离态)及其转换。 10. **性能优化**:提供一些优化Hibernate4性能的建议,如批处理、预加载、二级缓存的合理使用等。 ...
### Struts2+Spring+Hibernate知识点总结 #### Struts2框架概述 - **Struts2的工作流程**: 1. **客户端发起HTTP请求**:客户端浏览器向服务器发送HTTP请求。 2. **FilterDispatcher接收请求**:根据`web.xml`...
- **生命周期方法**: 如@PrePersist、@PostLoad等,用于在特定操作前后的回调处理。 4. **数据操作** - **CRUD操作**: Create(创建)、Read(读取)、Update(更新)、Delete(删除)是Hibernate的基本功能,...
理解这些状态有助于理解对象在生命周期中的行为,以及如何管理对象的生命周期。 8. 关系映射(重点) Hibernate通过XML映射文件或注解实现对象关系映射。这包括一对一、一对多、多对一、多对多等各种关系的映射,...
首先,Spring框架的核心是依赖注入(DI),它通过XML配置或注解方式来管理对象的生命周期和依赖关系。在调试时,我们需要关注bean的定义是否正确,包括bean的id、class、属性注入等。同时,Spring的AOP(面向切面...
- **生命周期集成**: 理解如何将业务逻辑融入到持久化生命周期中。 - **注解映射**: 学会使用 Java 注解来进行实体类与数据库表的映射。 - **查询与搜索**: 熟悉新版本 Hibernate 中的查询语言和搜索功能。 - **...
2. **IoC(Inversion of Control)容器**:Spring管理Hibernate Session,提供SessionFactory和Transaction的生命周期管理。 **六、技术难点** 1. **性能优化**:如缓存管理、批处理、懒加载和集合初始化的控制。 ...
2. 实例化SessionFactory:SessionFactory是线程安全的,通常在应用程序启动时创建一次,然后在整个应用生命周期中重用。 3. 开启Session:每次需要进行数据库操作时,都会创建一个Session实例,它代表一个数据库...
这篇面试题总结主要涉及Servlet的基础知识,包括其生命周期、工作原理以及与Struts、Spring、Hibernate的关系。 1. Servlet生命周期: - 初始化阶段:Servlet容器在接收到web应用部署描述符(web.xml)中的`...
2. 实体监听器:通过实现EntityListener接口,开发者可以在特定的生命周期事件(如保存、更新、删除等)中执行自定义逻辑,提高了代码的复用性和灵活性。 三、SQL日志生成 Hibernate-Extensions能够自动记录和打印...
- **Lifecycle**:Hibernate提供了一些生命周期接口,如` Persistable`,允许对象参与到Hibernate的生命周期管理。 - **ClassSession**:`Session`接口是与数据库交互的主要接口,负责持久化对象的操作,如保存、...