5.3.1 主键标识@Id

@Id用于标记属性的主键,该注释的属性定义如下。

@Target({METHOD, FIELD}) @Retention(RUNTIME)

public @interface Id {}

一旦标注了主键,该实体属性的值可以指定,也可以根据一些特定的规则自动生成。这就涉及到另一个标记@GeneratedValue标记的使用。

@GeneratedValue用于主键的生成策略,该注释的属性定义如下。

@Target({METHOD, FIELD}) @Retention(RUNTIME)

public @interface GeneratedValue {

GenerationType strategy() default AUTO;

String generator() default "";

}

l         strategy属性表示生成主键的策略。有四种类型,分别定义在枚举类型GenerationType中,该枚举类型的值如下所示。

public enum GenerationType { TABLE, SEQUENCE, IDENTITY, AUTO };

其中,默认为AUTO自动生成。

l         generator为不同策略类型所对应的生成的规则名,它的值根据不同的策略有不同的设置。

l         能够标识为主键的属性类型,如表所列举的几种。

@Id标识的数据类型

分类

类型

Java的基本数据类型

byte int short long char

Java基本数据类型对应的封装类

Byte Integer Short Long Character

大数值型类

java.math.BigInteger

字符串类型

String

时间日期型

java.util.Date java.sql.Date

doublefloat浮点类型和它们对应的封装类不能作为主键,这是因为判断是否唯一是通过equals方法来判断的,浮点型的精度太大,不能够准确的匹配。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值