package com.elab.redis.annotation;

import java.lang.annotation.*;

@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface CacheReadLock {

    /**
     * 缓存的key
     *
     * @return
     */
    String cacheName() default "";


    /**
     * 重复提交的标识key.
     * ALL如果是实体对象那么，对比所有属性。
     * 建议使用者重写实体的equals方法。
     * 如果是原始数据类型，包含String等等，则填写需要对比的对象下标 {0},{1}
     *
     * @return
     */
    String[] unionKey() default {};

    /**
     * 锁超时时间(秒)
     *
     * @return
     */
    int timeOut() default 5;

    /**
     * 优先级
     *
     * @return
     */
    int order() default Integer.MAX_VALUE;


}
