2024年3月14日发(作者:)

(1)Entity

@(name="xxx")

name指定实体Bean的名称,默认值为 bean class 的非限定类名(不带包的短类名)

(2)Table

@(catalog="xx",name="xx",schema="xx",uniqueConstraints={ @

UniqueConstraint(columnNames={"xx","xx"})})

name:指定表的名称

catalog:指定数据库名称

schema:指定数据库的用户名

uniqueConstraints:指定唯一性字段约束(字段值唯一不重复)

如为personid和name 字段指定唯一性约束:

uniqueConstraints={ @UniqueConstraint(columnNames={"personid", "name"})}

(3)Id

@()

映射到数据库表的主键的属性,一个实体只能有一个属性被映射为主键.

(4)GeneratedValue

@tedValue(generator="xxx",strategy=)

strategy:表示主键生成策略,有

方式一:@GeneratedValue(strategy=) 默认策略,生成方式取决于

底层的数据库。

方式二:@GeneratedValue(strategy = TY)指定“自动增长”策略,

适用于MySQL。

方式三:@GeneratedValue(strategy = CE, generator =

"seq_tbl_user")指定“序列”策略,适用于Oracle。其中generator表示生成器的名字,这个

属性通常和ORM框架相关。例如,Hibernate可以指定uuid等主键生成方式(要和

@SequenceGenerator(name = "seq_tbl_user", sequenceName = "seq_tbl_user",

allocationSize = 1)注解配合使用,其中name指定生成器的名字(与generator的值一样),

sequenceName指定数据库中定义序列的名字,allocationSize指定序列每次增长1 )

方式四:@GeneratedValue(strategy=) 使用一个特定的数据库表

格来保存主键

(5)Basic

@(fetch=,optional=true)

fetch=即时加载(默认值,即不写Basic注释的默认值)

fetch= 惰性加载

optional:指定在生成数据库结构时字段是否允许为 null,(默认值为true,允许为空)

(6)Column

@(length=15,nullable=false,columnDefinition="",insertable=true

,scale=10,table="",updatable=true)

@Column注解指定字段的详细定义

name: 数据库字段的名称,默认与属性名称一致

nullable: 是否允许为null,默认为true

unique: 是否唯一,默认为false

length: 字段的长度,仅对String类型的字段有效

columnDefinition: 表示该字段在数据库中的实际类型,通常ORM框架根据属性类型自动判

断数据库中字段的类型,

例如:String的默认映射类型为VARCHAR,如果要将String类型映射到特定数据库的BLOB

或TEXT字段类型,该属性非常有用

如: @Column(name="BIRTH",nullable="false",columnDefinition="TEXT")

insertable: 默认情况下,JPA假设所有列始终包含在 SQL INSERT 语句中。如果该列不应

包含在这些语句中,请将insertable设置为 false

updatable: 默认情况下,JPA假设所有列始终包含在 SQL UPDATE 语句中。如果该列不

应包含在这些语句中,请将 updatable 设置为 false

table: 当实体类使用 @SecondaryTable注解时会保存于多张表中,该字段指定实体类中的

某个属性保存于到那张表,不设置时该属性,默认保存到与类名相同的默认表中。

(7)Temporal

@al()

方式一:@Temporal()映射为日期(只有日期)

方式二:@Temporal()映射为日期(只有时间)

方式三:@Temporal(AMP)映射为日期(日期+时间)

(8)Enumerated

@ated()

枚举类型成员属性映射

指定属性映射为字符串。

L指定属性映射为数据序。