1.临时状态和游离状态都不在session的生命周期中.
2.临时状态:创建实例时是临时状态,不设置实体id或设置的id在表中找不到(delete操作)
3.游离状态(脱管状态):不在session的生命周期中,但实体id(持久化标识)与实际数据库中主键Id都存在且对 应.
4.持久化状态:在session的生命周期中,不仅实体id(持久化标识)与实际数据库中主键Id都存在且对应,并且与数据库中的表保持同步.
三种状态的转换:
临时-->游离 手动设置实体id与数据库中实体主键id对应
游离-->持久 在session生命周期中调用Hibernate Session的持久化方法save(),SaveOrUpdate()方法
临时-->持久 在session生命周期中调用Hibernate Session的持久化方法get(),load(),find(),iterate()方法
游离-->临时 在session关闭后,清除实体id属性的值或设置成表中不存在的主键Id
持久-->游离 关闭session,即使得不在session的生命周期中,可以调用evict(),close(),clear()
持久-->临时 在关闭session前,即session的生命周期结束前,从数据库中删除实体delete(),则关闭 session 后, 实体中即使得不在session的生命周期中.
分享到:
相关推荐
此外,jbpm使用Hibernate作为默认的ORM框架,因此熟悉Hibernate的使用也是很重要的。 jbpm的部署涉及到流程定义的打包和安装。通常,流程定义以.bpmn或.xml文件的形式存在,可以通过jbpm提供的工具或API进行部署。...
- **ER图**:实体关系图(Entity Relationship Diagram)用于描绘系统中的实体及其相互关系,如投稿人、稿件、审稿人、稿件状态等实体间的关联。 - **关系模式**:定义数据库中表的结构,包括字段名、数据类型、...
通过定义实体类和映射文件(hbm.xml),Hibernate自动将对象的状态转换为数据库记录,反之亦然。它提供了丰富的查询语言(HQL)和 Criteria API,使得数据库查询变得更为简洁和直观。 【标签】"东北大学 软件学院 实践...
本项目开发日记详细记录了在实际开发过程中遇到的问题、解决方案以及心得体会,对于Java开发者尤其是J2EE方向的工程师来说,具有很高的参考价值。 1. **J2EE架构与组件** J2EE平台由一系列可互操作的组件构成,...
在完成项目后,小组成员可以分享个人收获,如团队协作的经验、技术应用的感悟、问题解决的方法等,这些经验对于个人成长和技术提升都有积极影响。 通过这个JavaWeb课程设计,学生不仅可以深入理解JavaWeb开发技术,...
### 软件需求工程知识点...- **学习体会**:在设计过程中遇到的各种问题和挑战,促使不断学习新知识,提高了解决问题的能力。 - **后续方向**:未来可以从提升用户体验、增加个性化推荐功能等方面进一步优化系统设计。
- **实体类**:描述系统中的数据实体。 - **数据库操作 Dao 层**:处理与数据库交互的操作。 - **监听器**:监听系统的状态变化。 - **业务逻辑 Service 层**:处理业务逻辑。 - **工具箱 Utils**:提供通用的工具...