package jef.database.annotation;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
/**
*
* 这个注解总是和下面的注解一起使用,表示用自动自增序列值作为高位,再根据算法补充低位。
* <ul>
* <li>@GeneratedValue(strategy=GenerationType.SEQUENCE)</li>
* <li>@GeneratedValue(strategy=GenerationType.TABLE)</li>
* </ul>
* <p>
* hilo算法仅当采用sequence或者table方式生成主键时才会生效。
*
* @see javax.persistence.GeneratedValue
* @see javax.persistence.GenerationType
*
*/
@Target(FIELD)
@Retention(RUNTIME)
public @interface HiloGeneration {
/**
* 默认false,根据jef.properties中的配置绝顶是否使用hilo算法。
* 如果设置为true,那么hilo算法总是生效。<br>
* 由于hilo是一种优化手段,因此建议always=false,然后在实际项目中根据jef.peoperties中的配置来决定要不要启用hilo。
* @return
*/
boolean always() default false;
/**
* 低位的空间大小
*/
int maxLo() default 10;
}