panda.dao.entity.annotation.Id Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of panda-core Show documentation
Show all versions of panda-core Show documentation
Panda Core is the core module of Panda Framework, it contains commonly used utility classes similar to apache-commons.
package panda.dao.entity.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* 标识当前字段为一个 ID。 这字段的必须为整型(int,long,short,byte),否则 会在解析 POJO 时主动抛出异常。
*
* 在 Dao 接口调用 xxxx(Class>, long) 形式的函数时,第二个参数对应的就是这个字段,比如:
* fetch(Class>,long)
*
*
自动增长 -- 默认模式
*
* 默认的来说,这个字段在数据库中必须是自动增长的。当通过 Dao 接口执行 insert 操作 的时候,这个字段会被 自动填充上增长后的值。
*
* 在自增长模式下, Dao 在执行插入的时候,会忽略这个字段。如果你想在插入后获取数据库中的值,请 使用 '@Post' 注解
*
*
手动模式
* 有些时候,你希望这个 ID 的值是由你的程序来控制,你可以将 auto 属性设为 false
*
*
* @Id(auto = false)
* private int id;
*
*
* 这样,插入的时候,Dao 就不会忽略这个字段了。
*
* @see panda.dao.entity.annotation.Post
*/
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.METHOD})
@Documented
public @interface Id {
/**
* true : auto increase
*/
boolean auto() default true;
/**
* start number
*/
int start() default 1;
}