本文整理汇总了Java中net.sf.ehcache.search.Query类的典型用法代码示例。如果您正苦于以下问题:Java Query类的具体用法?Java Query怎么用?Java Query使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Query类属于net.sf.ehcache.search包,在下文中一共展示了Query类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: lookup
import net.sf.ehcache.search.Query; //导入依赖的package包/类
/**
* Use the Ehcache provided search API to perform criteria queries on defined search attributes.
* NOTE: Requires search attributes to be previously defined in Ehcache config!
* DEPRECATED because at observed large cache quantities the search noticeably slows down the system
* @param params the search parameters as key/value pairs
* @return the first found cache hit
*/
@Deprecated
@SuppressWarnings("unchecked")
public VALUE lookup(Map<String, String> params) {
Query q = cache.createQuery();
for (Map.Entry<String, String> param : params.entrySet()) {
Attribute<String> theAttribute = ((Ehcache) cache).getSearchAttribute(param.getKey());
q.addCriteria(theAttribute.eq(param.getValue()));
}
q.includeKeys().includeValues();
Results results = q.execute();
if (results == null || results.size() == 0) {
return null;
}
if (results.size() > 1) {
log.warn("There are multiple entries registered for params: {}", params.toString());
}
return (VALUE) results.all().get(0).getValue();
}
开发者ID:RWTH-i5-IDSG,项目名称:xsharing-services-router,代码行数:31,代码来源:EhCacheWrapper.java
示例2: getByDeviceClassId
import net.sf.ehcache.search.Query; //导入依赖的package包/类
@Override
public List<Device> getByDeviceClassId(Long deviceClassId) {
List<Device> deviceCacheObjects = new ArrayList<>();
Results results = null;
try {
Query query = getCache().createQuery();
Attribute<Long> id = getCache().getSearchAttribute("deviceClassId");
results = query.includeKeys().includeValues().addCriteria(id.eq(deviceClassId)).execute();
if (results.size() == 0) {
throw new CacheElementNotFoundException("Failed to get device ids from cache");
}
results.all().forEach((result) -> deviceCacheObjects.add((DeviceCacheObject) result.getValue()));
} finally {
if (results != null) {
results.discard();
}
}
return deviceCacheObjects;
}
开发者ID:c2mon,项目名称:c2mon,代码行数:25,代码来源:DeviceCacheImpl.java
示例3: searchPartitionKeys
import net.sf.ehcache.search.Query; //导入依赖的package包/类
private List searchPartitionKeys(final Query query) {
LinkedList<Object> keys = new LinkedList<Object>();
System.out.println("Starting search...");
long startTime = System.currentTimeMillis();
Results results = query.execute();
if(log.isDebugEnabled())
log.debug(String.format("Search time: %d ms", System.currentTimeMillis() - startTime));
// perform the refresh
for (Result result : results.all()) {
keys.add(result.getKey());
}
results.discard();
return keys;
}
开发者ID:lanimall,项目名称:ehcache-extensions,代码行数:18,代码来源:CacheFailoverDecorator.java
示例4: getDomainRole
import net.sf.ehcache.search.Query; //导入依赖的package包/类
@Override
public DomainRoleEntry getDomainRole(String uid, Role role) {
Cache cache = getCache(CacheId.DOMAIN_ROLES);
Attribute<String> uidAttribute = cache.getSearchAttribute(UserRoleKey.USER_ID);
Attribute<Role> roleAttribute = cache.getSearchAttribute(UserRoleKey.ROLE);
// query is the fastest if you search for keys and if you need value then call Cache.get(key)
Query queryRequestedUid = cache.createQuery()
.addCriteria(uidAttribute.eq(uid))
.addCriteria(roleAttribute.eq(role))
.includeKeys()
.end();
Results results = queryRequestedUid.execute();
DomainRoleEntry domainRole = null;
if (!results.all().isEmpty()) {
// Note: since (uid, role) is the primary key in domain role table
// results is either empty or contains exactly one entry
assert (results.all().size() == 1);
domainRole = (DomainAccessControlStoreEhCache.<DomainRoleEntry> getElementValue(cache.get(results.all()
.get(0)
.getKey())));
}
return domainRole;
}
开发者ID:bmwcarit,项目名称:joynr,代码行数:25,代码来源:DomainAccessControlStoreEhCache.java
示例5: getAces
import net.sf.ehcache.search.Query; //导入依赖的package包/类
private <T extends ControlEntry> List<T> getAces(String uid, CacheId cacheId) {
Cache cache = getCache(cacheId);
List<T> aces = new ArrayList<T>();
// here search on uid take place
Attribute<String> uidAttribute = cache.getSearchAttribute(UserDomainInterfaceOperationKey.USER_ID);
// query is the fastest if you search for keys and if you need value then call Cache.get(key)
Query queryRequestedUid = cache.createQuery().addCriteria(uidAttribute.eq(uid).or(uidAttribute.eq(WILDCARD)))
// have specific user ids appear before wildcards
.addOrderBy(uidAttribute, Direction.DESCENDING)
.includeKeys()
.end();
Results results = queryRequestedUid.execute();
for (Result result : results.all()) {
aces.add(DomainAccessControlStoreEhCache.<T> getElementValue(cache.get(result.getKey())));
}
return aces;
}
开发者ID:bmwcarit,项目名称:joynr,代码行数:19,代码来源:DomainAccessControlStoreEhCache.java
示例6: getDeviceClassIdByName
import net.sf.ehcache.search.Query; //导入依赖的package包/类
@Override
public Long getDeviceClassIdByName(String deviceClassName) {
Long deviceClassId;
if (deviceClassName == null || deviceClassName.equalsIgnoreCase("")) {
throw new IllegalArgumentException("Attempting to retrieve a DeviceClass from the cache with a NULL or empty name parameter.");
}
Results results = null;
try {
Attribute<String> className = getCache().getSearchAttribute("deviceClassName");
Query query = getCache().createQuery();
results = query.includeKeys().addCriteria(className.eq(deviceClassName)).maxResults(1).execute();
if (results.size() == 0) {
throw new CacheElementNotFoundException("Failed to find a device class with name " + deviceClassName + " in the cache.");
}
deviceClassId = (long) results.all().get(0).getKey();
} finally {
if (results != null) {
results.discard();
}
}
return deviceClassId;
}
开发者ID:c2mon,项目名称:c2mon,代码行数:28,代码来源:DeviceClassCacheImpl.java
示例7: hasTagWithName
import net.sf.ehcache.search.Query; //导入依赖的package包/类
@Override
public boolean hasTagWithName(String name) {
if (name == null || name.equalsIgnoreCase("")) {
throw new IllegalArgumentException("Attempting to retrieve a Tag from the cache with a NULL or empty name parameter.");
}
// This will prevent wildcard searches
if (name.contains("*")) {
name = name.replace("*", "\\*");
}
if (name.contains("?")) {
name = name.replace("?", "\\?");
}
Results results = null;
try {
Ehcache ehcache = getCache();
Attribute<String> tagName = ehcache.getSearchAttribute("tagName");
Query query = ehcache.createQuery();
results = query.includeKeys().addCriteria(tagName.ilike(name)).maxResults(1).execute();
return results.hasKeys();
}
finally {
if (results != null) {
// Discard the results when done to free up cache resources.
results.discard();
}
}
}
开发者ID:c2mon,项目名称:c2mon,代码行数:34,代码来源:AbstractTagCache.java
示例8: findAlarm
import net.sf.ehcache.search.Query; //导入依赖的package包/类
@Override
public Collection<Long> findAlarm(AlarmQuery query) {
Ehcache ehcache = getCache();
ArrayList<Long> result = new ArrayList<Long>();
Query cacheQuery = ehcache.createQuery();
if (query.getFaultCode() != 0) {
Attribute<Integer> fc = ehcache.getSearchAttribute("faultCode");
cacheQuery.addCriteria(fc.eq(query.getFaultCode()));
}
if (query.getFaultFamily() != null && !"".equals(query.getFaultFamily())) {
Attribute<String> ff = ehcache.getSearchAttribute("faultFamily");
cacheQuery.addCriteria(ff.ilike(query.getFaultFamily()));
}
if (query.getFaultMember() != null && !"".equals(query.getFaultMember())) {
Attribute<String> fm = ehcache.getSearchAttribute("faultMember");
cacheQuery.addCriteria(fm.ilike(query.getFaultMember()));
}
if (query.getPriority() != 0) {
Attribute<Integer> prio = ehcache.getSearchAttribute("priority");
cacheQuery.addCriteria(prio.eq(query.getPriority()));
}
if (query.getActive() != null) {
Attribute<Boolean> active = ehcache.getSearchAttribute("isActive");
cacheQuery.addCriteria(active.eq(query.getActive()));
}
for (Result res: cacheQuery.maxResults(query.getMaxResultSize()).includeKeys().execute().all()) {
result.add((Long) res.getKey());
}
return result;
}
开发者ID:c2mon,项目名称:c2mon,代码行数:36,代码来源:AlarmCacheImpl.java
示例9: getProcessId
import net.sf.ehcache.search.Query; //导入依赖的package包/类
@Override
public Long getProcessId(final String name) {
Long processKey = null;
Results results = null;
if (name == null || name.equalsIgnoreCase("")) {
throw new IllegalArgumentException("Attempting to retrieve a Process from the cache with a NULL or empty name parameter.");
}
try {
Attribute<String> processName = getCache().getSearchAttribute("processName");
// By limiting the query result list to 1 it is up to the administrator to
// make
// sure that the process name is unique. Otherwise this will result in an
// unpredictable behaviour.
Query query = getCache().createQuery();
results = query.includeKeys().addCriteria(processName.eq(name)).maxResults(1).execute();
// Find the number of results -- the number of hits.
int size = results.size();
if (size == 0) {
throw new CacheElementNotFoundException("Failed to find a process with name " + name + " in the cache.");
}
processKey = (Long) results.all().get(0).getKey();
}
finally {
if (results != null) {
// Discard the results when done to free up cache resources.
results.discard();
}
}
return processKey;
}
开发者ID:c2mon,项目名称:c2mon,代码行数:36,代码来源:ProcessCacheImpl.java
示例10: getCommandTagId
import net.sf.ehcache.search.Query; //导入依赖的package包/类
@Override
public Long getCommandTagId(final String name) {
Long commandTagKey = null;
Results results = null;
if (name == null || name.equalsIgnoreCase("")) {
throw new IllegalArgumentException("Attempting to retrieve a CommandTag from the cache with a NULL or empty name parameter.");
}
try {
Attribute<String> commandTagName = getCache().getSearchAttribute("commandTagName");
Query query = getCache().createQuery();
results = query.includeKeys().addCriteria(commandTagName.eq(name)).maxResults(1).execute();
// Find the number of results -- the number of hits.
int size = results.size();
if (size == 0) {
log.info("Failed to find a command tag with name " + name + " in the cache.");
}
commandTagKey = results.all().size() > 0 ? (Long) results.all().get(0).getKey() : null;
}
finally {
if (results != null) {
// Discard the results when done to free up cache resources.
results.discard();
}
}
return commandTagKey;
}
开发者ID:c2mon,项目名称:c2mon,代码行数:32,代码来源:CommandTagCacheImpl.java
示例11: createQuery
import net.sf.ehcache.search.Query; //导入依赖的package包/类
/**
* Create a search query builder for the cache.
*
* @return a new Query builder
*/
@Override
public Query createQuery()
{
if ( cache == null )
{
String error = "createQuery detected null cache name [" + name + "]";
throw new CacheException( GlobalErrIds.FT_NULL_CACHE, error );
}
return this.cache.createQuery();
}
开发者ID:apache,项目名称:directory-fortress-core,代码行数:16,代码来源:EhCacheImpl.java
示例12: clearDsdCacheEntry
import net.sf.ehcache.search.Query; //导入依赖的package包/类
/**
* Given DSD entry name, clear its corresponding object values from the cache.
*
* @param name contains the name of object to be cleared.
* @param contextId maps to sub-tree in DIT, e.g. ou=contextId, dc=example, dc=com. *
* @throws SecurityException in the event of system or rule violation.
*/
void clearDsdCacheEntry(String name, String contextId)
{
Attribute<String> context = m_dsdCache.getSearchAttribute(CONTEXT_ID);
Attribute<String> dsdName = m_dsdCache.getSearchAttribute(DSD_NAME);
Query query = m_dsdCache.createQuery();
query.includeKeys();
query.includeValues();
query.addCriteria(dsdName.eq(name).and(context.eq(contextId)));
Results results = query.execute();
for (Result result : results.all())
{
m_dsdCache.clear(result.getKey());
}
}
开发者ID:apache,项目名称:directory-fortress-core,代码行数:22,代码来源:SDUtil.java
示例13: getDsdCache
import net.sf.ehcache.search.Query; //导入依赖的package包/类
/**
* Given a role name, return the set of DSD's that have a matching member.
*
* @param name contains name of authorized Role used to search the cache.
* @param contextId maps to sub-tree in DIT, e.g. ou=contextId, dc=example, dc=com.
* @return un-ordered set of matching DSD's.
* @throws SecurityException in the event of system or rule violation.
*/
private Set<SDSet> getDsdCache(String name, String contextId)
throws SecurityException
{
contextId = getContextId(contextId);
Set<SDSet> finalSet = new HashSet<>();
Attribute<String> context = m_dsdCache.getSearchAttribute(CONTEXT_ID);
Attribute<String> member = m_dsdCache.getSearchAttribute(SchemaConstants.MEMBER_AT);
Query query = m_dsdCache.createQuery();
query.includeKeys();
query.includeValues();
query.addCriteria(member.eq(name).and(context.eq(contextId)));
Results results = query.execute();
boolean empty = false;
for (Result result : results.all())
{
DsdCacheEntry entry = (DsdCacheEntry) result.getValue();
if (!entry.isEmpty())
{
finalSet.add(entry.getSdSet());
finalSet = putDsdCache(name, contextId);
}
else
{
empty = true;
}
finalSet.add(entry.getSdSet());
}
// If nothing was found in the cache, determine if it needs to be seeded:
if (finalSet.size() == 0 && !empty)
{
finalSet = putDsdCache(name, contextId);
}
return finalSet;
}
开发者ID:apache,项目名称:directory-fortress-core,代码行数:43,代码来源:SDUtil.java
示例14: runTests
import net.sf.ehcache.search.Query; //导入依赖的package包/类
void runTests()
{
loadCache();
Attribute<String> member = cache.getSearchAttribute( "member" );
Query query = cache.createQuery();
query.includeKeys();
query.includeValues();
Set<String> roles = new HashSet<>();
roles.add( "oamt17dsd1" );
roles.add( "oamt17dsd4" );
roles.add( "oamT13DSD6" );
roles.add( "oamT16SDR7" );
query.addCriteria( member.in( roles ) );
Results results = query.execute();
System.out.println( " Size: " + results.size() );
System.out.println( "----Results-----\n" );
Set<SDSet> resultSet = new HashSet<>();
for ( Result result : results.all() )
{
DsdCacheEntry entry = ( DsdCacheEntry ) result.getValue();
resultSet.add( entry.getSdSet() );
}
for ( SDSet sdSet : resultSet )
{
LOG.info( "Found SDSet: " + sdSet.getName() );
}
}
开发者ID:apache,项目名称:directory-fortress-core,代码行数:30,代码来源:CacheSample.java
示例15: performSearch
import net.sf.ehcache.search.Query; //导入依赖的package包/类
private int performSearch(Criteria... criteria) {
Query query = createQuery(criteria);
long start = System.currentTimeMillis();
Results results = query.execute();
int count = results.size();
long duration = System.currentTimeMillis() - start;
log.info("Searchresult: found {} persons in {} ms.", count, duration);
results.discard();
return count;
}
开发者ID:dasniko,项目名称:ehcache-search-example,代码行数:11,代码来源:CacheTest.java
示例16: createQuery
import net.sf.ehcache.search.Query; //导入依赖的package包/类
private Query createQuery(Criteria... criteria) {
Query query = cache.createQuery().includeValues();
for (Criteria crit : criteria) {
query.addCriteria(crit);
}
query.end();
return query;
}
开发者ID:dasniko,项目名称:ehcache-search-example,代码行数:9,代码来源:CacheTest.java
示例17: getDomainRoles
import net.sf.ehcache.search.Query; //导入依赖的package包/类
@Override
public List<DomainRoleEntry> getDomainRoles(String uid) {
Cache cache = getCache(CacheId.DOMAIN_ROLES);
List<DomainRoleEntry> domainRoles = new ArrayList<DomainRoleEntry>();
Attribute<String> uidAttribute = cache.getSearchAttribute(UserRoleKey.USER_ID);
// query is the fastest if you search for keys and if you need value then call Cache.get(key)
Query queryRequestedUid = cache.createQuery().addCriteria(uidAttribute.eq(uid)).includeKeys().end();
Results results = queryRequestedUid.execute();
for (Result result : results.all()) {
domainRoles.add(DomainAccessControlStoreEhCache.<DomainRoleEntry> getElementValue(cache.get(result.getKey())));
}
return domainRoles;
}
开发者ID:bmwcarit,项目名称:joynr,代码行数:15,代码来源:DomainAccessControlStoreEhCache.java
示例18: getAce
import net.sf.ehcache.search.Query; //导入依赖的package包/类
private <T extends ControlEntry> T getAce(CacheId cacheId,
String uid,
String domain,
String interfaceName,
String operation) {
Cache cache = getCache(cacheId);
Attribute<String> uidAttribute = cache.getSearchAttribute(UserDomainInterfaceOperationKey.USER_ID);
Attribute<String> domainAttribute = cache.getSearchAttribute(UserDomainInterfaceOperationKey.DOMAIN);
Attribute<String> interfaceAttribute = cache.getSearchAttribute(UserDomainInterfaceOperationKey.INTERFACE);
Attribute<String> operationAttribute = cache.getSearchAttribute(UserDomainInterfaceOperationKey.OPERATION);
Query queryAllOperations = cache.createQuery()
.addCriteria(uidAttribute.eq(uid).or(uidAttribute.eq(WILDCARD)))
.addCriteria(domainAttribute.eq(domain))
.addCriteria(interfaceAttribute.eq(interfaceName))
.addCriteria(operationAttribute.eq(operation))
// have specific user ids appear before wildcards
.addOrderBy(uidAttribute, Direction.DESCENDING)
.includeKeys()
.end();
Results results = queryAllOperations.execute();
T ace = null;
if (!results.all().isEmpty()) {
ace = DomainAccessControlStoreEhCache.<T> getElementValue(cache.get(results.all().get(0).getKey()));
}
return ace;
}
开发者ID:bmwcarit,项目名称:joynr,代码行数:28,代码来源:DomainAccessControlStoreEhCache.java
示例19: getEditableAces
import net.sf.ehcache.search.Query; //导入依赖的package包/类
private <T extends ControlEntry> List<T> getEditableAces(String uid, CacheId cacheId, Role role) {
List<T> aces = new ArrayList<T>();
// find out first on which domains uid has specified role
Cache drtCache = getCache(CacheId.DOMAIN_ROLES);
UserRoleKey dreKey = new UserRoleKey(uid, role);
String[] uidDomains = null;
// read domains from DRE
if (drtCache.isKeyInCache(dreKey)) {
DomainRoleEntry dre = DomainAccessControlStoreEhCache.<DomainRoleEntry> getElementValue(drtCache.get(dreKey));
uidDomains = dre.getDomains();
}
// if uid has no domains with specified role return empty list
if (uidDomains == null || uidDomains.length == 0) {
return aces;
}
Cache cache = getCache(cacheId);
// here should search on uid and domain take place
Attribute<String> uidAttribute = cache.getSearchAttribute(UserDomainInterfaceOperationKey.USER_ID);
Attribute<String> domainAttribute = cache.getSearchAttribute(UserDomainInterfaceOperationKey.DOMAIN);
for (String domain : uidDomains) {
Query query = cache.createQuery()
.addCriteria(uidAttribute.eq(uid).and(domainAttribute.eq(domain)))
.includeKeys()
.end();
Results results = query.execute();
for (Result result : results.all()) {
aces.add(DomainAccessControlStoreEhCache.<T> getElementValue(cache.get(result.getKey())));
}
}
return aces;
}
开发者ID:bmwcarit,项目名称:joynr,代码行数:35,代码来源:DomainAccessControlStoreEhCache.java
示例20: createQuery
import net.sf.ehcache.search.Query; //导入依赖的package包/类
@Override
public Query createQuery() {
init();
return super.createQuery();
}
开发者ID:lanimall,项目名称:ehcache-extensions,代码行数:6,代码来源:EhcacheDelegateAdapter.java
注:本文中的net.sf.ehcache.search.Query类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论