快速业务通道

Unmi的Struts2学习笔记(二) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
implified API

Simplified API 部分主要规定了基于 EJB 3.0 标准开发企业应用时所需要遵 守的 Bean 类和接口要求、这些 API 的使用方式以及容器支持等多方面的内容。 还详细的规定了 EJB3.0 中除 Java Persistence API 部分之外的 EJB 实现所支 持的注释(Annotation)。规范中还有专门章节讲解 EJB 3.0 和此前的 EJB 规 范如何同时工作,以及如何将此前已经开发好的企业应用移植到 EJB 3.0 容器中 。其中的 Persistence 的内容放在了 JPA 规范中。

使用Apache OpenJPA开发EJB 3.0应用,第1部分: OpenJPA与EJB 3.0(3)

时间:2011-08-31 IBM 肖菁

EJB 核心规范

EJB 核心规范中首先描述了 EJB 在企业应用中的角色、EJB 规范的体系结构 ,确定了支持 EJB 标准的容器应该遵守的准则和要求。随后从多个角度详细的介 绍了 EJB 体系中各部分的功能需求和实现要求,包括 Session Bean、消息驱动 Bean(Message-Driven Bean)、事务、安全管理、部署描述符等。其中的 Persistence 的内容放在了 JPA 规范中。由于 EJB 3.0 规范并不排斥之前的 EJB 规范,因此 EJB 2.X 和 EJB 1.X 中的内容也保留在了 EJB 核心规范中。

Java Persistence API(JPA)

EJB 2.X 和 EJB 1.X 规范中的实体 Bean(EntityBean)部分都难以使用,使 持久化成为 EJB 规范的一个软肋,影响了 EJB 标准发挥更大的作用,自然而然 的,JPA 成为了 EJB3.0 规范中被关注最多的部分。JPA 规范部分详细的介绍了 JPA 中实体 Bean 新的定义,并介绍了实体 Bean 支持的注释、全新的查询语言 、实体管理接口、容器实现规范等内容。

JPA 标准中引入了新的实体概念,每一个实体都是一个普通的 Java 类,不需 要继承任何其他的接口或者扩展某个指定类,这个 Java 类必须使用 javax.persistence.Entity 进行注释。JPA 标准中还提供了包括 javax.persistence.Table、javax.persistence.Id 等在内的多个注释,用于完 成实体和数据库之前的映射。JPA 中引入了新的查询语言 JPQL(Java Persistence Query Language),JPQL 允许开发者采用面向对象的查询语言来查 找实体,这些实体持久化在关系型的数据库中,”select a from Animal a where a.name=’a’” 是一个 JPQL 的例子。其中的 Animal 是一个 Java 类, 而不是关系型数据库中的一个表或者视图。除了简单的查询功能之外,JPQL 中还 能够支持 Group、Order 等通常只有 SQL 才能提供的高级功能。JPA 标准中还规 定了在 Java EE 环境中和非 Java EE 环境中使用 JPA 时的差异,以及 Java EE 环境中容器的职责等。

JPA 体系架构

JPA 中定义一套类和接口用于实现持久化管理和对象/关系的映射,下面这张 图中显示了 JPA 的主要组件以及它们之间的相互关系。

图1 JPA 主要组件和相互关系

EntityManagerFactory

EntityManagerFactory 是 EntityManager 的工厂类,负责创建 EntityManager 对象。

使用Apache OpenJPA开发EJB 3.0应用,第1部分: OpenJPA与EJB 3.0(4)

时间:2011-08-31 IBM 肖菁

EntityManager

EntityManager 是 JPA 应用中使用的基本对象,通过它提供的相应方法可以 管理持久化对象,也可以新建或者删除持久化对象。EntityManager 还负责创建 Query 实例。在容器外使用时,EntityManagerFactory 和 EntityManager 之间 是一对一的关系。

Entity

EntityTransaction 提供 Entity 操作时需要的事务管理,和 EntityManager 是一对一的关系。在查询操作时不需要使用 EntityTransaction,而在对象持久 化、状态更新、对象删除等情况下则必须使用显式的使用 EntityTransaction 的 相关方法管理事务。

Query

Query 是查询实体的接口,Query 对象可以从 EntityManager 中获得。根据 E

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号