可缓存和可搜索支持

cacheable and searchable support

I am using Spring 3.2.2.RELEASE with Ehcache v.2.7.0

我想在缓存上执行可搜索的操作,我知道手动方法如下,有没有简单的方法可以使用 @Cacheable 上的注释来完成

public List<SourceLite> searchInSourceLite(String searchText){

        Query query = sourceCache.createQuery();

        query.includeKeys();
        query.includeValues();

        Attribute<String> fullNameAttrib = sourceCache.getSearchAttribute("fullName");


        query.addCriteria(fullNameAttrib.ilike("*"+searchText+"*"));

        Results results = query.execute();
        List<Result> records = results.all();
        System.out.println(records.size());

        return new ArrayList<SourceLite>(0);
    }

-- Ehcache xml 文件入口

 <cache name="sourceLiteCache" 
            maxEntriesLocalHeap="50000"
            eternal="false" 
            timeToLiveSeconds="10800" 
            memoryStoreEvictionPolicy="LFU">

            <searchable>
                <searchAttribute name="fullName" expression="value.getFullName()" />
                <searchAttribute name="id" expression="value.getId()" />
            </searchable>

        </cache>

-- Java 来源 Class

@Cacheable(value=CacheNames.SOURCE_LITE_CACHE)
    @Override
    public List<SourceLite> getAllSourceLite() {
        return sourceDao.getAllSourceLites();
    }

Spring caching abstraction没有搜索的概念,所以不可能。