【问题标题】:How to refresh iBatis Cache with database operations如何使用数据库操作刷新 iBatis Cache
【发布时间】:2012-11-19 16:13:55
【问题描述】:

我们有一个使用 iBatis for ORM 的 Java EE Web 应用程序。其中一个下拉列表(选择框)显示了一个主数据,该数据通过将平面文件加载到 oracle 数据库表中的 cron 作业每天(比如凌晨 4 点)刷新。

由于下拉/选择框必须列出约 1000 条记录并且它是 24 小时的静态数据,我们使用了 iBatis 中的 CacheModel 功能。选择查询使用设置为“ReadOnly=true & Serialized=true flushInterval=24 hours”的 CacheModel,以便所有用户共享单个缓存。

应用程序不会发生插入/更新/删除操作来修改此主数据

问题

如果外部作业加载数据到这个 oracle 表失败,并且如果 iBatis 缓存在我们手动加载表中的数据前一天被刷新,我如何在我重新运行的那一天之间再次刷新 iBatis 缓存一个失败的 cron 工作?

请注意,应用程序中不会有任何插入/更新/删除操作

【问题讨论】:

    标签: spring caching ibatis


    【解决方案1】:

    您可以通过编程方式刷新缓存。

    有两种方法

    void flushDataCache() 
    Flushes all data caches.
    

    void flushDataCache(java.lang.String cacheId) 
    Flushes the data cache that matches the cache model ID provided.
    

    SqlMapClient界面中。

    http://ibatis.apache.org/docs/java/user/com/ibatis/sqlmap/client/SqlMapClient.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-19
      相关资源
      最近更新 更多