浏览 893 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
时间:2007-11-23 关键字: JPA
发现JPA API提供的annonation里面没有关于cache的部分,依赖于Hibernate等实现者各自的实现,这样岂不是JPA程序依赖于实现了么?hibernate与openjpa实现的切换还需要修改java代码了??
声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
时间:2008-01-18
最近我也一直在想这个问题。目前支持缓存最好的是Hibernate。toplink和openJPA没用过,不清楚他们是否支持缓存。不过JPA规范里没有写的话,缓存估计只能是具体实现的可选项,需要单独配置。
现在主要是看缓存配置写在哪里。Hibernate的缓存用注释的方式写在类里的话,如果OpenJPA只是不理这部分注释的话,我估计应该不用更改代码。不过性能就下来了。 |
|
| 返回顶楼 | |
|
时间:2008-01-18
刚才去OpenJPA网站看了看。发现OpenJPA也是支持二级缓存的。不过好像他是自己的实现。OpenJPA只给出了第三方缓存和OpenJPA整合需要的接口。但是没有在文档中明确支持那些缓存。
我又看了一下类中缓存的注释方法,不同产品确实是不同的。所以,如果要在不同的产品中使用缓存的话,注释必须修改。不能直接使用。 |
|
| 返回顶楼 | |
|
时间:2008-05-25
所以我一直怀疑jpa的性能,害怕使用框架的某些原因是害怕管理缓存,如果使用框架的效率不高的话我到不如直接jdbc+cache!
|
|
| 返回顶楼 | |
|
时间:2008-05-25
JPA支持缓存
|
|
| 返回顶楼 | |
|
时间:2008-05-25
可以看看springside
|
|
| 返回顶楼 | |
|
时间:2008-05-25
xzs 写道 所以我一直怀疑jpa的性能,害怕使用框架的某些原因是害怕管理缓存,如果使用框架的效率不高的话我到不如直接jdbc+cache!
jpa只是一个规范而已,具体的性能得看框架的实现方法 |
|
| 返回顶楼 | |
|
时间:2008-05-26
Hiberante/TopLink/OpenJPA都默认打开了二级缓存,
Hiberante的二级缓存使用情况: Cache provider: org.hibernate.cache.HashtableCacheProvider Second-level cache: enabled Query cache: disabled Structured second-level cache entries: disabled 三种产品都使用过,最稳定的要算TopLink,最差的是OpenJPA,TopLink的二级缓存比Hibernate好,但Hibernate可以通过更换缓存实现来获得同样效果. 目前在项目中通常使用TopLink |
|
| 返回顶楼 | |
|
时间:2008-05-26
魔力猫咪 写道 刚才去OpenJPA网站看了看。发现OpenJPA也是支持二级缓存的。不过好像他是自己的实现。OpenJPA只给出了第三方缓存和OpenJPA整合需要的接口。但是没有在文档中明确支持那些缓存。
我又看了一下类中缓存的注释方法,不同产品确实是不同的。所以,如果要在不同的产品中使用缓存的话,注释必须修改。不能直接使用。 所以Java Cache API需要一个规范去统一,如果有一个类似commons-logging的东西,JPA去依赖这个Common API就合理了。不过JSR107貌似没有下文... 另外Hibernate的二级缓存配置可以写在hibernate.cfg.xml里,这样倒是可以做到java code对hibernate的零依赖。不过在各个JPA实现基本都有二级缓存概念的情况下,JPA为什么不再多走一步,规范一套Cache Annotation,不知道是基于什么考虑。 题外话,用了一段JPA发现JPA规范的还只是一部分很基础的映射情况,远不如Hibernate考虑得全面,所以还是用回Hibernate了,利用JPA从代码中剥离Hibernate还是有距离的。 |
|
| 返回顶楼 | |






