持久化规范JPA(JavapersistenceAPI)

开发 后端
持久化规范JPA(JavapersistenceAPI)。

EJB3最重要的特性是POJO编程模型,对开发人员的影响将是非常大的,因为他降低了开发人员编写EJB的要求。EJB3的bean类将更像常规的Javabean。不要求像过去那样实现特殊的回调界面或者扩展EJB类。所以它将使EJB的开发更像常规的Java开发。从EJB3.0项目的开发情况来看,除了第一个项目开发周期相对有些长之外(因为开发人员之前尚未掌握EJB3.0,相当于边学边用),后面的项目从开发周期到以后的维护时间都明显优于JDBC+javabean或sprint+hibernate的项目,软件在模块划分上更清晰,业务模块重用方面也有所提高(多种客户端J2ME,Web,Wap重用业务对象),数据库移植性方面非常棒,只需修改一下数据源就很容易切换数据库。

JavaEE需要一个与Hibernate类似的O/R映射的框架,这个规范为JSR-220;Hibernate仅关注ORM,而EJB3.0更多则更多表现为一种组件框架,其中包含ORM部分。EJB3.0在设计过程中,曾经得益于Hibernate的成功,EJB3.0EntityBean的设计理念完全来自于Hibernate。Hibernate的EntityManager产品为EJB3.0的EntityBean的一种Implementation。

JPA基于JavaSE5.0的注记实现O/Rmapping,Hibernate基于XML文件,虽然Hibernate也提供HibernateAnnotation支持Annotation方式。有两种定义映射的方法:元数据(注记)和映射文件。尽管我们提倡采用元数据的方法,但应该也注意到了它所带来的不便。从本质上讲,此方法牵涉应用程序的两个逻辑层:域模型和映射信息。因为这两个层是分散的,所以这两个层需要使用不同技术进行单独测试。元数据方法本身不会影响层的可测试性。更确切的说,元数据方法使这两个层好像只是一个层,由于受一系列因素的影响,这可能会引起问题。

Hibernate只是一种O/R映射框架,JavaEE更需要一个O/R映射规范.JPA为EJB3.0规范中的一个重要内容,基于JPA的实现软件具有与Hibernate同样的优势。JPA为轻量级的对象关系映射实现持久化存储的API。JPA可以使用在JavaSE和JavaEE环境中。

什么是JPA?

JavaEE5.0用于对象持久化的API

EJB3.0规范的重要组成部分

吸取了主流持久层框架例如Hibernate的优点

Oracle提供Toplink实现,为Oracle的开源JPA实现。

Bea提供KODO实现,被包含在Bea的weblogic商用服务器中。

JBoss提供HibernateEntityManager实现,JBossAS4.2.1支持EJB3.0。

ApacheOpenJPA为Apache软件许可下的EJB3Persistence标准的开源实现,下载地址为http://openjpa.apache.org/。OpenJPA提供了保存点功能,但JPA规范没有。因此,希望使用保存点的OpenJPA开发人员应该对代码的大部分内容使用JPA规范,而借助OpenJPAEntityManager来设置和管理保存点。

您正在阅读:持久化规范JPA(JavapersistenceAPI)

【编辑推荐】

  1. 用J2SE 5.0创建定制的泛型集合
  2. J2SE中两种Java容器类List和Set分析
  3. J2SE综合:深入了解Java 5.0的垃圾收集
责任编辑:张攀 来源: 新浪
相关推荐

2012-05-14 17:21:19

ibmdw

2009-06-19 18:36:15

JPAHibernate

2023-04-28 15:15:39

数据库JPA

2009-06-01 15:32:30

EclipseJPA入门

2009-06-01 15:12:05

JPA是什么对象持久化ORM

2009-06-25 16:07:30

JPAJava EE

2009-06-01 15:19:25

JPAHibenateSpring

2009-06-25 16:18:45

JPA规范

2009-06-01 13:17:48

JPAJava规范

2013-09-12 14:56:02

iOS持久化

2022-09-05 08:17:57

JPA级联java

2009-06-01 12:04:38

JPASpringJAVA

2024-03-26 00:03:08

Redis数据RDB

2024-02-29 09:12:09

2019-12-27 13:50:04

JavaAPI代码

2021-03-18 08:18:15

ZooKeeper数据持久化

2023-10-12 13:01:29

Redis数据库

2020-03-03 14:15:49

Redis持久化数据库

2009-09-22 11:30:57

2009-07-29 17:36:55

ibmdwJava
点赞
收藏

51CTO技术栈公众号