@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标识的数据类型
分类
|
类型
|
Java的基本数据类型
|
byte,int,short,long,char
|
Java基本数据类型对应的封装类
|
Byte,Integer,Short,Long,Character,
|
大数值型类
|
java.math.BigInteger
|
字符串类型
|
String
|
时间日期型
|
java.util.Date,java.sql.Date
|
double和float浮点类型和它们对应的封装类不能作为主键,这是因为判断是否唯一是通过equals方法来判断的,浮点型的精度太大,不能够准确的匹配。
相关推荐
JPA的Id注解.docx
本文档简单描述了注解实现联合主键类的生成
JPA的基本注解主要包括@Entity、@Table、@Id、@GeneratedValue、@Basic、@Column、@Transient、@Temporal和@TableGenerator等。
JPA注解1.1 @Entity1.2 @Table1.3 @Id1.4 @GeneratedValue1.5 @Basic1.6 @Column1.7 @Transient1.8 @Temporal1.9 @TableGenerator 1. JPA注解 1.1 @Entity 标注在实体类上,表示此类对应一个数据表。 1.2 @Table 与...
hibernate常见异常,hibernatejpa注解使用开发的解决方案
生成JPA的实体,带注解,包括@Entity,@Table(name=xx),@Id,@GeneratedValue,@Column(name=xx) 输出表和字段的注释,包含字段的类型长度 自动生成包名,sets、gets方法,自动判断数据类型并引包
* @Id —— 注解声明了该实体bean的标识属性(对应表中的主键)。 * @Table —— 注解声明了该实体bean映射指定的表(table),目录(catalog)和schema的名字 * @Column —— 注解声明了属性到列的映射。该注解有...
####JPA Hibernate Entity Listener ##Recipe 18(Spring 缓存抽象) 在本节中,您将看到如何使用 EntityListener 我们将使用基于注解的方法。 使用 hsqldb 2.3.3 版本全面支持 JDBC 3.0 构建依赖 要求 版本 ...
getOne得到的是对应得实体类对象,如果需要在单元测试中使用此方法,要加上事务支持注解,即@Transactional,才可以正常使用 从源码分析 public Optional findById(ID id) { Assert.notNull(id, "The given id ...
JPA 注解使用 @Entity 标明是实体类 @Table 映射表名称 @Id 主键标识 @GeneratedValue 自动生成主键的值 @Column 设置映射数据表中列信息 @Temporal 控制数据表保存日期哪个部分(日期、时间、日期时间)...
• 将类注解为 @IdClass,并将该实体中所有主键的属性都注解为 @Id @Entity @IdClass(FootballerPk.class) public class Footballer { //part of the id key @Id public String getFirstname() { return ...
可以使用@Entity`注解标注实体类,并使用`@Id`注解指定唯一标识。 4. 创建用户数据访问层(Repository): 创建一个用户数据访问层接口,继承`JpaRepository`或其他适合的Spring Data接口。该接口将提供一些基本的...
本系统采用企业级开发标准,使用SpringBoot架构,数据访问层采用Spring Data Jpa,业务控制层采用SpringMvc,安全框架采用Shiro,实现了完整权限系统,Controller方法采用shiro注解,来实现有效的权限控制;...
文章目录Spring Data Annotations@Transactional@NoRepositoryBean@Param@Id@Transient@CreatedBy, @LastModifiedBy, @CreatedDate, @LastModifiedDateSpring Data JPA Annotations@Query@Procedure@Lock@Modifying@...
定义设备的属性,如设备ID、设备名称、设备类型等,并使用注解将其映射到数据库表。 创建设备管理服务:创建设备管理服务类,实现设备的增删改查操作。使用 Spring Data JPA 或其他持久化框架来处理与数据库的交互...
JPA 中有哪些注解,他们的意义? // 实体类,状态需要持久化的类 @Entity // 映射当前类到特定的数据库(schema)、表(table) @Table // 映射主键(PK) @Id // 映射到表的列(字段) @Column // 一对一 @OneToOne...
注解式:通过在执行的Java方法上放置相应的注解完成 Spring与Shiro整合 在web.xml配置拦截器 在Shiro配置文件上配置在web.xml对应的bean 配置安全管理器 配置自定义的realm Shiro过滤器 ...
生成JPA的实体,带注解,包括@Entity,@Table(name=xx),@Id,@GeneratedValue,@Column(name=xx) 输出表和字段的注释,包含字段的类型长度 自动生成包名,sets、gets方法,自动判断数据类型并引包
Seam - 语境相关的组件[满江红20071230]............................................................................................................................ 1 Java EE 框架...........................
GyJdbc基于jdbctemplate的类似JPA的持久层框架封装,使用优势: Dao层0代码,再也不需要为Dao层的方法名称命名掉头发。 链式SQL配合lambda表达式,既装B又简洁。 强悍SQL拼接,支持作者已知的所有SQL语法。 学习...