【问题标题】:Hibernate caching . problem with backdoor休眠缓存。后门问题
【发布时间】:2011-10-30 02:20:54
【问题描述】:

在我们的 java/j2ee 应用程序中,我们有休眠并且启用了休眠缓存。但是由于某些业务原因,我们还必须有一种后门,我们应该能够更新数据库中的某些列。

当我们这样做时,休眠缓存没有得到更新。所以我们现在剩下的唯一选择是重新启动应用程序(在 jboss 6 上运行)。

现在这发生在 CIT/staging environment 上。并且该应用程序将在即将到来的星期一上线,并且由于明显的原因无法重新启动应用程序。

关于如何解决这个问题的任何建议? (除了禁用休眠缓存。这是我最后的后备解决方案)

【问题讨论】:

    标签: hibernate caching jakarta-ee


    【解决方案1】:

    不要直接在数据库中进行。在应用程序中创建一个安全页面,通过 Hibernate 执行您想要的操作。直接更新实时数据库是一个不错的想法,因为您可以很容易地搞砸事情。此受控页面将限制损坏,但仍允许您做您需要做的事情。

    【讨论】:

    • 再一次 .. 这暂时没有问题。如果您愿意,我可以单独讨论原因:)。这类东西计划在未来 6 个月内开发 2 。但是有什么方法可以在没有网页/重新启动应用程序的情况下完成此操作?
    • 我不这么认为。直接更新数据库是在 Hibernate 之外进行的,因此它的缓存将不知道这些更新。这是缓存的经典问题。
    • 您可以在更新数据库(使用一些管理 URL)后清除缓存(使用 SessionFactory.getCache().evictXxx),但在整个数据库更新过程中缓存会过时。
    猜你喜欢
    • 2011-11-18
    • 1970-01-01
    • 1970-01-01
    • 2013-06-22
    • 1970-01-01
    • 1970-01-01
    • 2016-08-13
    • 2012-04-29
    • 2015-01-05
    相关资源
    最近更新 更多