持久化对象的状态
瞬态(transient):数据库中没有数据与之对应,超过作用域会被JVM垃圾回收器回收,一般是new出来且与session没有关联的对象。
持久(persistent):数据库中有数据与之对应,当前与session有关联,并且相关联的session没有关闭,事务没有提交;持久对象状态发生改变,在事务提交时会影响到数据库(hibernate能检测到)。
脱管(detached):数据库中有数据与之对应,但当前没有session与之关联;托管对象状态发生改变,hibernate不能检测到。
----------------------
下面的是 很形象的 关系图
- 大小: 116.2 KB
分享到:
相关推荐
这是因为Hibernate在默认情况下会缓存对象,以便在事务提交时进行一次性持久化,这可能导致内存消耗过大,尤其是在处理大量数据时。 标题"浅析Hibernate下数据批量处理方法"和描述中提到,早期的Hibernate在批量...
Hibernate中的实体对象有三种状态: 1. **瞬时状态(Transient)**:新创建的对象未被持久化,不处于Session缓存中。 2. **持久状态(Persistent)**:对象已持久化,被添加到Session缓存中,与数据库中的记录关联。 3. ...
体的子类名称。在Hibernate中,继承关系的设计是一个重要的概念,它可以帮助...理解并熟练掌握这些继承策略,能够帮助我们更好地利用Hibernate来处理复杂的对象关系,优化数据库访问性能,以及简化数据持久化的操作。
iBATIS是一个Java编程语言中的持久层框架,它提供了一种半自动化的方式来处理ORM(对象关系映射)。与Hibernate和Apache OJB等一站式ORM解决方案不同,iBATIS允许开发者更自由地控制SQL查询,提供了更高的灵活性。这...
- **拦截器基础**:拦截器是一种特殊类型的对象,用于拦截并处理请求。 - **使用拦截器**:可以通过配置文件指定哪些Action会被哪些拦截器拦截。 - **自定义拦截器**:开发者可以根据需求自定义拦截器,实现特定的...
- **Struts2与iBatis集成**:指导如何在Struts2项目中引入iBatis,实现数据持久化层的开发。 #### 十六、其他集成 - **与其他技术集成**:探讨Struts2与更多技术栈的集成方案,如RESTful Web Services、SOAP Web ...
Struts2与ORM框架Hibernate的结合,可以实现数据持久化的无缝对接,简化数据访问层的开发。 #### 十四、集成Spring 通过与Spring框架的深度集成,Struts2可以更好地实现依赖管理和事务处理,构建出更加健壮的企业...
MyBatis提供了一种基于代理的执行策略,即`BaseExecutor`作为抽象基类,实现了通用的执行逻辑,然后通过它的三个子类`SimpleExecutor`、`ReuseExecutor`和`BatchExecutor`来分别处理不同的执行场景。 1. `...
集成Hibernate、Spring、iBatis和JQuery部分则分别介绍了如何将Struts2与其他流行的持久层框架、IoC容器、持久层工具和JavaScript库集成。 最后,教程还提供了投票管理系统、无纸化办公管理系统和数据采集系统的...
- **集成Hibernate**:讨论如何在Struts2应用中集成Hibernate,实现持久层的操作。 - **集成Spring**:介绍如何利用Spring的IOC容器管理Struts2中的组件。 - **集成iBatis**:探索Struts2与iBatis的集成方案。 - **...
- **系统设计**:介绍使用Hibernate作为持久层时系统的整体设计思路。 - **数据库设计**:展示如何设计数据库模型以配合Hibernate使用。 - **代码实现**:给出具体的代码示例,包括DAO层、Service层的实现。 #### ...
- **集成Hibernate**:可以使用Hibernate作为持久层解决方案。 - **集成Spring**:Spring可以用来管理整个应用程序的依赖注入。 #### 总结 本文档旨在为初学者提供Struts2框架的基础知识概览,涵盖了Struts2的基本...
Mybatis作为一个广泛使用的持久层框架,其轻量级和易用性在金融IT领域备受推崇,甚至超越了Hibernate。然而,任何技术都有其局限性,Mybatis也不例外。本文将深入探讨Mybatis的一些主要缺陷。 首先,Mybatis依赖于...