一、对象定义
1.org.hibernate.SessionFactory
对于单个数据库,被编译的映射,是一个线程安全的缓冲区。是一个Session和ConnectionProvider客户端的工厂。拥有可选的对过程级和集群级重复利用的数据的缓存(二级缓存)。
2.org.hibernate.Session
单线程、短生命周期的在应用程序和持久化存储系统之间的一个会话对象。封装了一个JDBC连接。是一个事务的工厂。拥有强制的对持久化对象的缓存(一级缓存),当通过标识浏览对象之间关系和查找对象时使用。
3.Persistent objects and collections
包含执久化状态和业务功能的短生命周期的、单线程对象。可以是POJOs,通常是和Session(严格说,是单个Session)相关联的对象。Session一关闭,他们将和Session分离,可以自由的使用在应用层的任何地方。(也就是说,作为传输对象使用(Transfer Object)。)
4.Transient and detached objects and collections
不和当前Session关联的持久化类的实例。他们可以被应用程序在不持久化时实例化,也可以被关闭的Session实例化。
5.org.hibernate.Transaction (可选)
应用程序用来指定一个原子操作的单线程、短生命周期的对象。低层JDBC、JTA、CORBA事务的抽象程序。在相似的情况下,一个Session可以同时横跨多个事务。事务划分,既可以使用低层的APIs,也可以使用Transaction。
6.org.hibernate.connection.ConnectionProvider (可选)
JDBC连接或JDBC连接池的工厂。低层DataSource和DriverManager的抽象程序。
这个对象不暴露给应用程序,但是应用程序可以被开发者继承和实现。
7.org.hibernate.TransactionFactory (可选)
Transaction实例的工厂。这个对象不暴露给应用程序,但是应用程序可以被开发者继承和实现。
二、实例状态
持久化对象根据持久化上下文的定义,可以有三种不同的状态。Hibernate Session对象是一个持久化上下文。
1.transient
不关联任何的持久化上下文。没有持久化的标识(指主键值Primary key value)。
2.persistent
和当前持久化上下文关联。他有一个持久化标识,多数情况,在数据库中有对应的行。对于特定的持久化上下文,Hibernate保证持久化标识和Java标识(内存中对象的位置)相同。
3.detached
曾经和一个持久化上下文关联,持久化上下文关闭;或者对象在另一个进程中被序列化。他拥有持久化标识,多数情况,在数据库中有对应的行。对于分离对象Hibernate不保证持久化标识和Java标识的对应关系。
三、JMX集成
JMX是Java组件管理的JEE标准。Hibernate可以被JMX服务管理。在发行版本中,Hibernate提供了一个MBean的实现,org.hibernate.jmx.HibernateService。
在JBoss上,你使用JMX可以得到的好处:
1.Session Management
Hibernate Session的生命周期可以自动的绑定到JTA事务范围。这意味着,你不需要手动的打开关闭Session,这成为JBoss EJB拦截器的要完成的工作。在你的代码中,也不用担心事务的划分,当然除非你想要写一个轻便的持久化层,通过使用Hibernate Transaction APIs。你可以调用HibernateContext来访问Session。
2.HAR deployment
通常使用JBoss Service Deployment Descriptor(在EAR或SAR文件中)发布Hibernate JMX Service,它支持Hibernate SessionFactory所有的常用配置选项。无论如何,你还需要在deployment descriptor中描述所有的映射文件。如果你使用可选的HAR Deployment,JBoss将自动检测所有的映射文件在HAR文件中。
四、JCA 支持
Hibernate也可以配置作为一个连接器。该功能是实践型功能。
分享到:
相关推荐
3. 更深入的学习:要深入了解Hibernate Annotation,可以参考官方文档`hibernate_annotations_3.2.1.pdf`(英文原稿)和中文翻译版`hibernate_annotations_zh.pdf`(满江红翻译)。这些文档详细介绍了各种注解的用法...
总之,这份“Hibernate学习笔记源码及文档”是一个全面的学习资源,它涵盖了从入门到进阶的各个层面,对于想要掌握Hibernate的开发者来说,是一份非常宝贵的学习材料。通过系统地学习和实践,不仅可以理解Hibernate...
"Hibernate3.2官方中文参考手册.pdf"和"hibernate3.2.rar"提供了Hibernate 3.2版本的详细官方文档和源码。虽然版本较旧,但依然能为初学者提供基础的理解,包括实体管理和事务处理、缓存策略、多对一、一对多、一对...
【尚学堂Hibernate学习笔记】是一份详尽的学习资料,旨在帮助初学者理解并掌握Hibernate这一流行的Java对象关系映射(ORM)框架。该笔记由作者根据马士兵老师的教程整理而成,其中包含了个人的学习注解,使得内容...
这份“Hibernate文档资料”涵盖了Hibernate的多个重要方面,包括开发指南、学习笔记、原理与配置以及中文参考文档,这些都是深入理解和掌握Hibernate所必不可少的资源。 首先,`Hibernate开发指南`通常会详细阐述...
在学习过程中,建议遵循“先脉络,后细节”、“先操作,后原理”的原则,结合Annotation进行配置,减少XML的繁琐,同时充分利用官方文档和参考资料,例如Hibernate官网(http://www.hibernate.org)和中文文档,以及...
### 马士兵Hibernate学习笔记知识点总结 #### 一、HelloWorld示例 - **目的**:通过简单的示例理解Hibernate的基本使用流程。 - **步骤**: - 创建Java项目`hibernate_0100_HelloWorld`。 - 建立库依赖,包括...
中文版的Hibernate文档,是学习过程中重要的参考资料。 通过这份笔记,你不仅能够学习到Hibernate的基本使用,还能了解到它的设计理念和最佳实践。希望它对你在Java开发中的ORM之路有所帮助。
- Hibernate Annotation参考资料:对于使用注解配置的开发者,这是一个重要的参考来源。 环境准备: - 下载Hibernate发行版:例如hibernate-distribution-3.3.2.GA-dist。 - Hibernate Annotations:例如hibernate-...
这个参考文档可能包含选择器、遍历、DOM操作、事件、效果、Ajax、插件和API等方面的详细说明,帮助开发者理解和使用jQuery进行网页动态效果的创建和页面交互的优化。 【MySQL5.1参考手册.chm】 MySQL是一个开源的...
本资料合集涵盖了关于Hibernate的各种学习资源,包括PDF、CHM和Word文档,旨在帮助开发者深入理解和掌握Hibernate这一强大的Java持久化框架。Hibernate作为一个对象关系映射(ORM)工具,极大地简化了Java应用程序与...
综合上述内容,这个“留言管理程序”是一个全面展示Struts、DAO和Hibernate集成应用的实例,对于学习和理解这些技术的交互以及构建Web应用具有很高的参考价值。通过研究和实践这个项目,开发者可以提升自己在Web开发...
2. **hibernate学习笔记.doc**:这可能是某个人的学习笔记,记录了他们学习Hibernate的过程和理解,可能包括一些个人的理解和技巧,对于初学者来说是很好的参考资料。 3. **0801Hibernate.doc**:这个名字可能是...
1. **Hibernate技术文档**: Hibernate的技术文档是理解其核心概念和API的重要参考。CHM文件通常包含官方的API文档和用户指南,包括实体管理、会话管理、查询语言(HQL)以及Criteria API等内容。学习者可以通过...
这个文档是开发者在实际编程时的重要参考工具,包含了所有Hibernate类、接口及其方法的详细说明。开发者可以通过查阅此文档,快速定位并理解 Hibernate 中的各种类和方法,以解决开发过程中遇到的具体问题。 再者,...
Struts2、Spring2.5和Hibernate3.2是经典的Java Web开发框架组合,被称为SSH。...不过,需要注意的是,随着框架版本的更新,整合方法和最佳实践也会有所变化,因此在实际项目中应参考最新的文档和教程。