【问题标题】:Hibernate cache not working with RichFaces bean休眠缓存不适用于 RichFaces bean
【发布时间】:2012-01-16 15:20:06
【问题描述】:

我有一个基本上每次发出请求时都会调用getSession().createCriteria(ObjClass.class).list(); 的bean。第一次加载所有内容需要 16 秒,然后大约需要 1 秒。问题是在单元测试中缓存效果很好,但是当对一个 bean 发出多个请求时,它甚至从不使用缓存。问题是为什么?

信息:它是二级休眠 (3.5.x) 缓存 (2.0),启用了 org.hibernate.cache.HashtableCacheProvider 和查询级缓存使用。使用启用了 keep alive 的 Richfaces 3.3.3 请求范围 bean。

【问题讨论】:

    标签: java hibernate jsf caching richfaces


    【解决方案1】:

    如果您不使查询可缓存,它将不会被缓存:

    getSession().createCriteria(ObjClass.class)
                .setCacheable(true)
                .list();
    

    您还可以设置缓存区域以进行更细粒度的配置。

    【讨论】:

    • 我不会在测试中使查询可缓存,并且测试使用与 bean 相同的 DAO。
    • 没用,之前需要 16 秒,现在第一次需要 17 秒,然后减少到 16 秒。
    • ObjClass 类是否可缓存?你看过生成的 SQL 查询吗?
    猜你喜欢
    • 2020-01-05
    • 1970-01-01
    • 2020-04-08
    • 1970-01-01
    • 1970-01-01
    • 2020-09-05
    • 1970-01-01
    • 2011-10-13
    • 1970-01-01
    相关资源
    最近更新 更多