论坛首页 Java企业应用论坛

JPA,感觉有点鸡肋

浏览 5811 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-12-07  
    看了下JPA的介绍,就是在原有ORM的基础上抽象出一层通用接口,以便可以任意替换不同的ORM实现,有的朋友认为JPA的出现可以替代掉DAO,可是事实上,这确是大错特错了,我认为JPA非但不能替换掉DAO,而且因为DAO的存在而显得更加尴尬。

    为什么?JPA虽然抽象了ORM的接口,想统一ORM标准,但是也正因为如此,它实际和直接使用ORM框架没有区别(除了能够任意替换不同实现以外),因为即使使用JPA,我们一样不能缺少DAO,我们来看看DAO的主要作用:
   1、DAO将持久逻辑抽象出来,让业务层不需关注与持久相关的逻辑
   2、在DAO层我们可以任意更换不同的持久实现,而无需更改业务层

   从以上DAO两个主要作用看来,第一点,即使使用JPA也不能缺少,因为JPA并不能将持久相关逻辑抽象,对于第二点,JPA更换的是更底层即ORM框架的实现,而DAO是从持久逻辑处更换ORM实现,所以JPA比DAO来得容易,可是出于商业原因,JPA并无法全面的顾及到各个方面,不能够像单独的ORM那样提供灵活的功能,因此也失去了不少单独ORM框架的特色,而如果要使用这些被忽略的特性,则必须绕开JPA而使用。

    站在我的观点上,我宁愿在更换实现时麻烦点(不算太麻烦吧,至少不用改动业务层),也不愿意放弃掉ORM特有的一些特性,因此我觉得JPA固然目标远大,但是实质上并不能带给我多大的好处,而且我想我也很少有机会更换ORM实现吧。
   发表时间:2007-12-07  
JPA是个标准而已, 就是为了不同厂商产品替换来着想的, DAO还是需要的.
0 请登录后投票
   发表时间:2007-12-14  
有和楼主一样的疑惑,郁闷Ing
0 请登录后投票
   发表时间:2008-10-20  
"有的朋友认为JPA的出现可以替代掉DAO",jpa跟dao有什么关系.
0 请登录后投票
   发表时间:2008-10-20  
Hibernate屏蔽不同的数据库差异,JPA屏蔽不同的ORM差异。
JPA有意义么?规范更新慢,现在事实标准也是使用Hibernate作为JPA实现。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics