@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 ""; } lstrategy属性表示生成主键的策略。有四种类型,分别定义在枚举类型GenerationType中,该枚举类型的值如下所示。 public enum GenerationType { TABLE, SEQUENCE, IDENTITY, AUTO }; 其中,默认为AUTO自动生成。 lgenerator为不同策略类型所对应的生成的规则名,它的值根据不同的策略有不同的设置。 l能够标识为主键的属性类型,如表所列举的几种。 表@Id标识的数据类型
double和float浮点类型和它们对应的封装类不能作为主键,这是因为判断是否唯一是通过equals方法来判断的,浮点型的精度太大,不能够准确的匹配。 |
JPA的Id注解
JPA的Id注解
2008-07-22 16:12