EJB3持久化规范详解
需积分: 9 153 浏览量
更新于2024-07-26
收藏 3.19MB PDF 举报
"EJB3持久化规范 (简体中文版)"
EJB3持久化规范是Java企业级应用程序(J2EE)开发中的一个重要组成部分,它定义了如何在Java环境中管理和存储对象状态,使得这些对象能够在数据库中持久化。EJB(Enterprise JavaBeans)3.0引入了对持久化处理的重大改进,简化了模型,使其更加面向对象,并减少了对XML配置的依赖。
1. 实体(Entity)
- 实体类的要求:实体类是持久化的基础,它们必须遵循特定的规则,如包含持久化字段和属性,以及可能的主键和唯一标识。
- 持久化字段和属性:这些是与数据库表字段对应的类成员,它们的数据会被存储和检索。
- 主键和实体唯一标识:每个实体通常有一个或多个字段作为其主键,用于唯一识别数据库中的记录。
- 可嵌入类:允许将一个类的实例嵌入到另一个实体中,作为其属性的一部分进行持久化。
- 非关系字段或属性的映射缺省值:默认情况下,EJB3会尝试自动映射非标准数据类型。
- 实体关系:实体可以与其他实体建立关联,例如一对一、一对多、多对一和多对多关系。
- 继承:支持类的继承结构,允许子类共享父类的持久化特性。
- 继承映射策略:定义如何处理继承层次结构中的持久化,例如单表继承或多表继承。
2. 实体操作
- ENTITYMANAGER:实体管理器是处理实体的主要接口,负责实体的创建、读取、更新和删除操作。
- EntityManagerAPI:提供了一组方法来管理实体实例的生命周期,包括事务控制和并发管理。
- 实体实例的生命周期:涵盖了从创建(持久化)、删除(移除)到数据库同步的过程。
- 持久化实体实例:当实体被管理并保存在持久化上下文中时,其状态会在适当时候被保存到数据库。
- Removal:删除实体实例,这会从数据库中移除相应的记录。
- 数据库同步:在事务提交或回滚时,实体管理器会确保数据库与实体实例的状态一致。
- 脱管实体:非管理状态的实体不参与数据库同步,需手动处理其状态。
- 管理实体实例:实体管理器可以将实体置于管理状态,从而监控其生命周期。
3. 持久化上下文的生命周期
- 事务提交:当事务结束时,持久化上下文中的所有更改都会被持久化到数据库。
- 事务回滚:如果事务失败,所有更改都将被撤销,数据库状态保持不变。
4. 乐观锁和并发
- 乐观锁:在并发环境下,乐观锁假设冲突很少发生,只在更新时检查版本信息以防止并发问题。
- 版本属性:通常是一个自增的字段,用于跟踪实体的修改。
- 锁模式:不同的锁策略,如读锁和写锁,用于控制并发访问。
- OptimisticLockException:当检测到并发冲突时抛出,表示更新失败。
5. 实体监听器和回调方法
- 实体监听器允许开发者定义在特定事件(如创建、更新、删除)时执行的代码,增强了对实体生命周期的控制。
EJB3持久化规范提供了强大的工具和机制,让开发者能够更方便地在Java应用程序中实现对象的持久化,同时简化了与数据库交互的复杂性,提升了开发效率。通过实体、实体管理器和各种并发控制策略,开发者可以构建高度灵活和可扩展的J2EE应用程序。
2010-10-09 上传
372 浏览量
2010-04-19 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
oqqLang123456789444
- 粉丝: 0
- 资源: 1
最新资源
- Haskell编写的C-Minus编译器针对TM架构实现
- 水电模拟工具HydroElectric开发使用Matlab
- Vue与antd结合的后台管理系统分模块打包技术解析
- 微信小游戏开发新框架:SFramework_LayaAir
- AFO算法与GA/PSO在多式联运路径优化中的应用研究
- MapleLeaflet:Ruby中构建Leaflet.js地图的简易工具
- FontForge安装包下载指南
- 个人博客系统开发:设计、安全与管理功能解析
- SmartWiki-AmazeUI风格:自定义Markdown Wiki系统
- USB虚拟串口驱动助力刻字机高效运行
- 加拿大早期种子投资通用条款清单详解
- SSM与Layui结合的汽车租赁系统
- 探索混沌与精英引导结合的鲸鱼优化算法
- Scala教程详解:代码实例与实践操作指南
- Rails 4.0+ 资产管道集成 Handlebars.js 实例解析
- Python实现Spark计算矩阵向量的余弦相似度