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