1.Hibernate的对象有3种状态
分别为:瞬时态(Transient)、 持久态(Persistent)、脱管态(Detached)。处于持久态的对象也称为PO(Persistence Object),瞬时对象和脱管对象也称为VO(Value Object)。
这3个状态是hibernate里pojo对象得3个状态,个人觉得这个对象始终都是pojo,而在这3个状态中得vo和po只是它这时得一个表象而已(即它这时得状态和po或vo状态相同),并不能就说它此时是一个vo或po对象。而且po是根据具体orm框架生成得象JDO和hibernate 生成它得机制就不一样。这里说po只是广义得描述一个状态。
(1) 瞬时态
由new命令开辟内存空间的java对象,
eg. Person person = new Person("amigo", "女");
如果没有变量对该对象进行引用,它将被java虚拟机回收。
瞬时对象在内存孤立存在,它是携带信息的载体,不和数据库的数据有任何关联关系,在Hibernate中,可通过session的 save()或saveOrUpdate()方法将瞬时对象与数据库相关联,并将数据对应的插入数据库中,此时该瞬时对象转变成持久化对象。
(2)持久态
处于该状态的对象在数据库中具有对应的记录,并拥有一个持久化标识
。如果是用hibernate的delete()方法,对应的持久对象就变成瞬时对象,因数据库中的对应数据已被删除,该对象不再与数据库的记录关联。
当一个session执行close()或clear()、evict()之后,持久对象变成脱管对象,此时持久对象会变成脱管对象,此时该对象虽然具有数据库识别值,但它已不在HIbernate持久层的管理之下。
持久对象具有如下特点:
1. 和session实例关联;
2. 在数据库中有与之关联的记录。
(3)脱管态
当与某持久对象关联的session被关闭后,该持久对象转变为脱管对象。当脱管对象被重新关联到session上时,并再次转变成持久对象。
脱管对象拥有数据库的识别值,可通过update()、saveOrUpdate()等方法,转变成持久对象
。
脱管对象具有如下特点:
1. 本质上与瞬时对象相同,在没有任何变量引用它时,JVM会在适当的时候将它回收;
2. 比瞬时对象多了一个数据库记录标识值。
分享到:
相关推荐
"SVSE-S3冲刺题-Hibernate笔试题"这个标题表明这是一个针对SVSE(可能是软件版本、课程阶段或某个特定考试体系的缩写)第三阶段的冲刺复习资料,重点是Hibernate相关的笔试题目。Hibernate是一个开源的对象关系映射...
【标题】与【描述】提及的是“Hibernate面试题专栏”,主要涵盖了全面的Hibernate面试题、笔试题以及相关问题,这表明我们将要讨论的是Java领域中著名的对象关系映射框架——Hibernate的相关知识。Hibernate是一个...
Hibernate 笔试题库 在本资源中,我们将对 Hibernate 进行详细的知识点总结,涵盖 Hibernate 的基础概念、配置、映射、查询、Session 等方面。 1. 数据访问层的责任 在三层结构中,数据访问层承担的责任是数据的...
### Hibernate笔试题解析 #### 1. 在三层结构中,数据访问层承担的责任是(B) **选项解析:** - **A)** 定义实体类:这是领域模型层的责任,而不是数据访问层。 - **B)** 数据的增删改查操作:这正是数据访问层的...
### Struts+Spring+Hibernate 笔试面试常见问题解析 #### 一、Hibernate 基础概念 **1.1 Hibernate 概述** Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java ...
### Struts + Spring + Hibernate 笔试题解析 #### 一、Struts 流程与特性 **Struts1 的流程:** 1. **初始化:** 首先加载配置文件 `struts-config.xml`,创建核心控制器 `ActionServlet`。 2. **请求处理:** ...
根据给定文件中的标题、描述、标签以及部分内容,下面将详细阐述Spring、Hibernate与Struts相关的面试笔试知识点。 ### Spring框架的关键概念 1. **IoC容器**:Spring框架的核心特性之一是其提供了依赖注入...
6. 若要在删除某个实体时同时删除与之相关的其他实体数据,可以配置级联删除(cascade="delete")或者使用级联所有(cascade="all")。 7. Hibernate的关联映射配置错误包括不正确的inverse属性值、不允许在节点内...
Hibernate的优势在于它可以减少JDBC的繁琐代码,支持延迟加载以优化性能,且能处理复杂的数据关系,如一对一、一对多和多对多等关联。 【面试&笔试题要点】 1. Hibernate的工作原理:涉及配置文件解析、...
Hibernate的缓存机制包括一级缓存(Session级别的缓存)和二级缓存(SessionFactory级别的缓存,可配置为应用级或分布式缓存),有助于减少数据库访问次数,提高效率。查询方式包括使用get()和load()方法,以及使用...
【描述】中的内容虽然没有提供具体细节,但可以推断这是一次包含笔试和机试两部分的考核,可能涵盖了Hibernate的相关理论知识以及实际操作。笔试部分可能涉及Hibernate的核心概念、配置、对象关系映射(ORM)、...
【Spring、Hibernate、Struts面试笔试题解析】 Spring是一个开源的Java平台,它主要负责管理应用程序的组件,包括依赖注入(DI)、面向切面编程(AOP)以及大量的工具支持,使得开发人员能够构建出松散耦合且易于...
### Spring, Hibernate, Struts 的面试笔试题解析 #### 1. Hibernate 工作原理及为何使用? **原理概述:** - **读取并解析配置文件:** 首先,Hibernate 会读取 `hibernate.cfg.xml` 或其他指定的配置文件,这些...
Hibernate的工作流程包括:读取和解析配置文件、创建SessionFactory、打开Session、创建事务、执行持久化操作、提交事务、关闭Session和SessionFactory。Hibernate支持延迟加载(Lazy Loading),在需要时才加载数据...
SSH(Struts、Spring、Hibernate)笔试题与面试题汇总整理 SSH(Struts、Spring、Hibernate)是 Java EE 开发中常用的三个框架,它们之间可以组合使用,以提高开发效率和系统性能。下面是对 SSH 框架中 Struts2 ...
Spring,hibernate,struts的面试笔试题(答案)