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指定属性映射为数据序。


发布评论