Hibernate 相关注解

本文详细介绍了在ORM(对象关系映射)中使用的各种注解,包括@Entity、@Table、@Id等,并解释了它们如何帮助实现Java类与数据库表之间的映射。此外还深入探讨了主键生成策略的不同方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 @Entry 说明该类是一个可以被生成表的实体
标识在类上

@Table 当前表和实体 名称不一致的时候
标识在类上

@Id 用来描述主键
标识在属性上

@Basic 不写就等于写了 该属性关联映射
标识在属性

@column 当我们属性和字段不一致 限制表中字段的规范
length =10, 数据长度
nullable = false, 是否可以为空
unique = true, 是否是唯一健
columnDefinition = "varchar2(10 char) 自定义数据类型
precision =7 数据长度 =整数位+精度位
scale =2 数据精度
标识在属性

@Temporal 用来标识时间类型
3种
年月日 TemporalType.DATE
时分秒 TemporalType.TIME
年月日+时分秒 TemporalType.TIMESTAMP


@Transient 该属性字段不要去维护 不会去添加该字段 忽略该字段
标识在属性上


@Lob 标识二进制数 BLOB CLOB



主键生成策略的相关注解


@GeneratedValue(strategy=GenerationType.AUTO)
标识在主键字段上 用来描述主键生成策略


GenerationType.AUTO 自己选择 Hibernate会根据你当前映射的数据库 自动去生成主键策略

MYSQL 自增长 自动给你的表的主键 设置自增长
MSSQL 自增长 自动给你的表的主键 设置为自增长
ORACLE 序列 帮助我们自动建立一个HIBERNATE_SEQUENCE的序列


@GeneratedValue(strategy = GenerationType.IDENTITY) 自增长 MYSQL数据库




@GeneratedValue(strategy = GenerationType.SEQUENCE,generator = "LIUYUN") ORACLE
generator = "LIUYUN" 我只能给你创建一个名叫hibernate_sequence 指定一个名叫LIUYUN的生成器
@SequenceGenerator(name="LIUYUN",sequenceName = "ACCOUNT_SEQ",allocationSize = 1)


Hibernate 专门新建一张表 t_zizengzhang 2个字段
pkColumnName ="pk",valueColumnName = "nowval",
pk nowval
Hello 0
Hello2 0
@Id
@GeneratedValue
(strategy = GenerationType.TABLE,generator = "table_generator")
@TableGenerator(name="table_generator",table = "t_zizengzhang",pkColumnName ="pk",valueColumnName = "nowval",initialValue = 0,allocationSize = 1)



Hibernate内置的 uuid 不分数据库的
@GeneratedValue(generator = "uuid")
@GenericGenerator(name="uuid",strategy = "uuid")

MYSQL数据库有多种数据库引擎 内核
#hibernate.dialect org.hibernate.dialect.MySQLInnoDBDialect 支持事务 增删改而生
#hibernate.dialect org.hibernate.dialect.MySQLMyISAMDialect 不支持事务 查询而生





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值