[SEAM] seam应用还需不需要JPA的二级缓存

bighou 2009-03-09
JPA的二级缓存可以对实体对象进行EntityManagerFactory范围的缓存,但是seam提供了conversation范围的EntityManager和PojoCache,那么还有必要使用JPA的二级缓存吗?请各位提出宝贵意见
打倒小日本 2009-03-10
他们缓存的方式和目的都是不一样的
还是需要JPA的二级缓存
may_cauc 2009-03-10
怎么实现?
我用的配置是tomcat + seam + jpa(hibernate)+ehcache。
能看到ehcach启动了,但是在查询的时候还是输出sql。
在网上看到hibernate要设置query.seCacheable(true).但是jpa的quey中没有啊。
jnduan 2009-03-10
jpa根据不同的实现,需要调用query的setHint方法
不同的实现设置key和value是完全不同的

请google hibernate jpa的hint和EclipseLink(toplink)的hint
jnduan 2009-03-10
可以在persistence.xml中通过Property参数指定好全局的缓存策略,然后个别的query在通过setHint方法设置单独的缓存方式。
例如,Oracle toplink推荐在使用事务的情况下使用
<property name="toplink.cache.type.default" value="Weak"/>
这样的Entity缓存策略。
hibernate jpa应该也有相应的缓存策略
bighou 2009-03-11
仔细研究了一下,jpa二级缓存是为了提高数据库访问的性能,conversation用来缓存会话状态,而PojoCache可以在应用或集群范围内共享。
Global site tag (gtag.js) - Google Analytics