Hibernate 二级缓存配置

Hibernate 二级缓存配置,hibernate,ehcache,Hibernate,Ehcache,我有HibernateEhcache4.1.4最终版本,ehcache-3.3.0.jar HibernateEHCache的配置(Spring3.2) hibernate.cache.use_second_level_cache=true hibernate.generate_statistics=true hibernate.cache.region.factory_class=org.hibernate.cache

我有HibernateEhcache4.1.4最终版本,ehcache-3.3.0.jar

HibernateEHCache的配置(Spring3.2)

 hibernate.cache.use_second_level_cache=true    
            hibernate.generate_statistics=true         
            hibernate.cache.region.factory_class=org.hibernate.cache.ehcache.EhCacheRegionFactory
我的实体

@Entity
@Table(name = "SESSION_ENTERING")
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_ONLY)
public class SESSION_ENTERING implements Serializable {
...
我的刀

    public List<SESSION_ENTERING> getSESSIONS() {
    return sessionFactory.getCurrentSession().
            createQuery("from SESSION_ENTERING order by id desc")
           .setCacheable(true)
            .list();
}
   //or even this
   public SESSION_ENTERING getSESSION() {
        return   SESSION_ENTERING)sessionFactory.getCurrentSession().get(SESSION_ENTERING.class,256l);
}

你似乎没有具体的问题,但我可以说一件事

因为您使用的是Ehcache 3.3,所以应该通过JCache而不是为Ehcache 2制作的
EhCacheRegionFactory
来配置Ehcache

此外,您应该真正使用经典的类名(以大写字母开始,然后小写)。这对阅读你的人来说有点误导。

这是我的错。 首先,我将库ehcache-3.3.0.jar更改为较低的ehcache-core-2.6.10。 第二,我添加了entity@Cacheable注释,但我不确定它是否有用

        SecondLevelCacheStatistics cacheEntries = sessionFactory.getStatistics()
    .getSecondLevelCacheStatistics("");
    sessionFactory.getStatistics().logSummary();