com.avaje.ebean.annotation.CacheQueryTuning Maven / Gradle / Ivy
package com.avaje.ebean.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Specify cache tuning for query caching on a specific entity type.
*
* If this is not specified then the system default settings are used.
*
*/
@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
public @interface CacheQueryTuning {
/**
* The maximum size for the cache.
*
* This defaults to 0 which means unlimited.
*
*/
int maxSize() default 0;
/**
* The maximum time (in seconds) that a cache entry is allowed to stay in the
* cache when it has not been accessed.
*
* This defaults to 0 which means unlimited.
*
*/
int maxIdleSecs() default 0;
/**
* The maximum time (in seconds) a cache entry is allowed to stay in the
* cache.
*
* This is not generally required as the cache entries are automatically
* evicted when related data changes are committed.
*
*
* This defaults to 0 which means unlimited.
*
*/
int maxSecsToLive() default 0;
/**
* The frequency (in seconds) that cache trimming should occur.
*
* This is a hint for cache implementations that use background cache trimming.
*
*/
int trimFrequency() default 0;
}