有谁知道当省略了flushInterval时iBATIS cacheModel的行为是什么,比如说缓存类型是MEMORY?我希望它只是将缓存结果无限期地保留在内存中。我有一组结果,如果不重新启动服务器,这些结果就永远不会改变,并且我希望在应用程序的生命周期内只查询一次它们。我在想,如果我将flushInterval元素保留在缓存映射之外,这会起作用......但我在文档中找不到任何内容来确认这一点。
最佳答案
来自Ibatis source code和 Ibatis User Guide
如果 CacheModel 中未设置 flashInterval,则会将其设置为 NO_FLUSH_INTERVAL,即 -99999,并且不是用户指南建议的正毫秒数。通过此设置,缓存仅通过调用语句(执行时刷新)或显式调用刷新命令(如果您覆盖 Ibatis)来刷新。
为了获得您想要的行为,您还需要指定一个
<property name="Type" value="STRONG"/>
在您的 CacheModel 中,有关详细信息,请参阅 here
.
关于ibatis - iBATIS 中的无限刷新间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1229833/