Using the QueryManager API
The QueryManager Builder and Interface
BigMemory SQL searches are performed using the QueryManager builder and interface.
public final class QueryManagerBuilder
{
public static QueryManagerBuilder newQueryManagerBuilder()
{
}
public QueryManagerBuilder addCache(Ehcache cache)
{
}
public QueryManagerBuilder addAllCachesCurrentlyIn(CacheManager cacheManager)
{
for (String s : cacheManager.getCacheNames())
{
final Ehcache cache = cacheManager.getEhcache(s);
}
}
public QueryManager build()
{
}
}
public interface QueryManager
{
Query createQuery(String queryString);
}
Specifying Caches to Query
You can explicitly add a cache to be searched by BigMemory SQL, or you can specify the CacheManager that contains the caches. The following example does both:
QueryManager queryManager = QueryManagerBuilder
.newQueryManagerBuilder()
.addCache(cache1)
.addCache(cache2)
.addAllCachesCurrentlyIn(cacheManager1)
.addAllCachesCurrentlyIn(cacheManager2)
.build();
Note: A build of the QueryManager is a snapshot of the state of the CacheManagers and Caches. If CacheManagers or Caches are added or removed after the build, a new QueryManager should be built before issuing the query.
Specifying the Query
The createQuery() method takes one string argument that represents a BigMemory SQL SELECT clause:
Query query = queryManager.createQuery("queryString");