- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Hibernate
Hibernate
HHiibbeerrnnaattee文档笔记共分为三个部分,此处是第一部分,讲述了对象定义、实例状态、
JMX JCA
JMX JCA
JJMMXX集成和JJCCAA 支持四个部分的内容。
一、对象定义
1.org.hibernate.SessionFactory
对于单个数据库,被编译的映射,是一个线程安全的缓冲区。是一个 Session 和
ConnectionProvider客户端的工厂。拥有可选的对过程级和集群级重复利用的数据的缓存(二
级缓存)。
2.org.hibernate.Session
单线程、短生命周期的在应用程序和持久化存储系统之间的一个会话对象。封装了一个
JDBC 连接。是一个事务的工厂。拥有强制的对持久化对象的缓存(一级缓存),当通过标
识浏览对象之间关系和查找对象时使用。
3.Persistent objectsandcollections
包含执久化状态和业务功能的短生命周期的、单线程对象。可以是POJOs,通常是和
Session(严格说,是单个Session)相关联的对象。Session一关闭,他们将和Session分离,
可以自由的使用在应用层的任何地方。(也就是说,作为传输对象使用(TransferObject)。)
4.Transientanddetachedobjectsandcollections
不和当前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实例的工厂。这个对象不暴露给应用程序,但是应用程序可以被开发者继承
和实现。
二、实例状态
持久化对象根据持久化上下文的定义,可以有三种不同的状态。HibernateSession对象
是一个持久化上下文。
1.transient
不关联任何的持久化上下文。没有持久化的标识(指主键值Primarykey value)。
2.persistent
和当前持久化上下文关联。他有一个持久化标识,多数情况,在数据库中有对应的行。
对于特定的持久化上下文,Hibernate保证持久化标识和Java标识(内存中对象的位置)相
同。
3.detached
曾经和一个持久化上下文关联,持久化上下文关闭;或者对象在另一个进程中被序列化。
他拥有持久化标识,多数情况,在数据库中有对应的行。对于分离对象 Hibernate不保证持
久化标识和Java 标识的对应关系。
JMX
JMX
三、JJMMXX集成
JMX 是Java 组件管理的JEE 标准。Hibernate 可以被JMX 服务管理。在发行版本中,
Hibernate提供了一个MBean的实现,org.hibernate.jmx.HibernateService。
在JBoss上,你使用JMX 可以得到的好处:
1.SessionManagement
HibernateSession的生命周期可以自动的绑定到JTA事务范围。这意味着,你不需要手
动的打开关闭Session,这成为JBoss EJB 拦截器的要完成的工作。在你的代码中,也不用
担心事务的划分,当然除非你想要写一个轻便的持久化层,通过使用HibernateTransaction
APIs。你可以调用HibernateContext来访问Session。
2.HARdeployment
通常使用JBossService
文档评论(0)