我有一个使用@Cachable 的方法
@Cacheable(value="airport", key="#filter")
public static String getAirport(String filter, SessionFactory sessionFactory){
String airportsDisplay = "";
Session session = sessionFactory.openSession();
airportsDisplay = (String) session.createQuery("select iata from Airports a where a.displaystr = :accfilter").setString("accfilter", filter.toUpperCase()).uniqueResult();
session.close();
return airportsDisplay;
}
它所做的只是使用给定过滤器进行数据库查询并返回机场名称。
xml配置是
<cache name="airport"
maxElementsInMemory="100"
eternal="false"
timeToIdleSeconds="1200"
timeToLiveSeconds="1200"
overflowToDisk="true"
maxElementsOnDisk="10000000"
diskPersistent="true"
diskExpiryThreadIntervalSeconds="1200"
memoryStoreEvictionPolicy="LRU"/>
问题是它不缓存结果!
在部署时,airport.data 会正常创建,但无论我从 Web 应用程序调用该方法多少次,它总是为空。
有什么建议吗?