1、声明实体类
@Entity用于将一个类声明为一个实体类,即持久化类。
name,用于为实体类指定别名,以和其它同名不同包的实体类进行区别
2.实体类映射表
@Table 用于在实体类和表之间建立映射关系,它有以下配置选项:
name,用于指定实体映射的数据库表名称
schema,用于指定数据库表所在的用户模式,如oracle的scott用户模式,sqlserver的dbo用户模式
catalog用于指定数据库的名字
3 映射标识符属性
@Id元素在实体映射文件中映射一个标识符属性(主键)
@GeneratedValue注解声明主键的生成策略,该注解有如下配置选项:
strategy 指定主键值生成策略(由JPA定义),通过GenerationTyped的常量提供:
GenerationType.AUTO,默认的生成策略,生成器采用native,取决于底层数据库的能力,使用该生成器保证映射元数据可以移植到不同的数据库管理系统。
GenerationType.TABLE,使用一个特定的数据库表格来保存主键
GenerationType.IDENTITY,生成器采用identity,适用于DB2、MySql、MSSqlServer等直接支持主键自动增长的数据库系统,主键值由数据库自动生成。返回的标示符类型为long、short或int
GenerationType.SEQUENCE,生成器采用sequence,适用于DB2、ORACLE等通过序列对象提供有序数列来作为主键值的数据库。(这个生成策略要与generator一起使用) generator指定生成主键使用的生成器,例如采用orcale时指定序列名称
4.映射普通属性
@Column 注解用于声明实体类属性到数据库表的列的映射。该注解有如下配置选项:
name 可选,列名(默认值是属性名)
unique 可选,是否在该列上设置唯一约束(默认值false)
nullable可选,是否设置该列的值可以为空(默认值false)
insertable可选,该列是否作为生成的insert语句中的一个列(默认值true)
updatable可选,该列是否作为生成的update语句中的一个列(默认值true)
columnDefinition 可选,为这个特定列覆盖sqlddl片段(这可能导致无法在不同数据库间移植)
table 可选,定义对应的表(默认为主表)
length可选,列长度(默认值255)
precision 可选,列十进制精度(decimal precision)(默认值0)
scale 可选,如果列十进制数值范围(decimal scale)可用,在此设置(默认值0)
@Column注解需要声明在指定属性的getter方法上面