【问题标题】:hibernate cache expiration after days几天后休眠缓存到期
【发布时间】:2020-01-04 16:59:42
【问题描述】:

应用程序正在使用 Hibernate 3,并且需要在保存到数据库时缓存数据。

  1. 是否可以只缓存实体的几列而不是全部?

  2. 是否可以在几天后设置实体的到期时间?例如,是否可以将过期时间设置为 3 天,以便在 3 天后自动从缓存中删除记录?

我已经开始研究缓存过程,但不确定是否可以满足上述两个需求。

【问题讨论】:

    标签: java hibernate caching


    【解决方案1】:
    1. 不,不可能在 Hibernate 二级缓存中仅缓存实体的列子集,否则 Hibernate 在组装此类实体实例时需要转到数据库获取剩余数据,因此破坏缓存的目的。
    2. 是的,可以为缓存数据设置过期时间。 Hibernate 将其留给 L2 缓存提供者来管理过期和逐出策略,因此您需要在那里对其进行配置(请参阅您使用的缓存提供者的文档)。

    更多详情herehere

    【讨论】:

      【解决方案2】:

      1) YES,将其他字段设为Transient,这样他们就不会参与二级缓存pr

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-30
        • 2016-08-13
        • 2012-04-29
        • 2015-01-05
        • 2011-11-18
        • 2017-01-16
        • 2011-06-18
        • 2011-10-13
        相关资源
        最近更新 更多