ejb 3单例中的JPA 2级别2缓存与缓存

时间:2014-01-22 12:05:12

标签: caching jpa-2.0 ejb-3.0

在JSF EJB3 JPA2项目中使用EJB 3单例和缓存是否明智 基于EJB3级别的基础信息,而不是使用JPA2 Level2缓存 在EJB 3单例中,我们将所有读取方法放在单例EJB中,例如

public Collection<Unit> findAllUnits() {
    Query query = em.createQuery("SELECT e FROM Unit e");
    return (Collection<Unit>) query.getResultList();
}

我们需要获得的是某种应用程序级缓存机制 对于我们的基本信息表。 有人可以比较这两种方式吗?或任何其他选择/建议? 应用程序服务器是Weblogic 11g

由于

1 个答案:

答案 0 :(得分:0)

最好利用二级缓存而不是使用单例并在容器创建bean实例时手动缓存数据。通常情况下,任何级别的任何应用程序肯定都有多个需要缓存的区域,除非您的数据非常小而且非复杂。如果你有大块,为什么重新发明轮子,因为当前的解决方案足够复杂,可以处理,生存时间,空闲时间,驱逐策略,甚至控制一个人想要在缓存中有多少对象是正常的事情

简而言之,请使用任何二级缓存解决方案,除非您的应用程序中有非常简单和最简单的要求。