
Hibernate实体注解详细解读及中英对照
下载需积分: 10 | 511KB |
更新于2025-03-31
| 194 浏览量 | 举报
收藏
Hibernate是一个开源的Java持久层框架,它提供对象关系映射(ORM)的功能,让开发者可以通过面向对象的方式来操作数据库。实体(Entity)是ORM中的核心概念,它代表了数据库表中的数据以及与这些数据相关的操作。在Hibernate中,实体通常通过注解(Annotation)来进行配置,以实现对象和数据库表之间的映射关系。
### 实体映射注解
- `@Entity`: 这个注解用于类级别,标识一个类为实体。被`@Entity`注解的类会映射到数据库的一个表。
- `@Table`: 用于指定实体对应的数据库表名,如果不使用该注解,Hibernate默认会将类名转换为下划线命名法来匹配表名。
- `@Id`: 标识实体的主键,用于指定类中的属性作为主键。通常会与`@GeneratedValue`注解一起使用,以指明主键的生成策略。
- `@Column`: 映射属性到表的列。可以指定列的名称、长度、是否唯一、是否允许为空等属性。
- `@GeneratedValue`: 指定主键生成策略。常用的策略包括`GenerationType.AUTO`(自动选择策略)、`GenerationType.IDENTITY`(主键由数据库自动生成)、`GenerationType.SEQUENCE`(使用数据库序列)、`GenerationType.TABLE`(使用表记录生成主键)。
- `@Temporal`: 用于映射日期类型的属性到数据库中的日期时间类型字段,常用的属性值有`TemporalType.DATE`、`TemporalType.TIME`和`TemporalType.TIMESTAMP`。
- `@Lob`: 映射大对象类型,如Blob或Clob,适合存储大量文本或二进制数据。
- `@Transient`: 表示属性不是数据库表的列,Hibernate在持久化时会忽略这个属性。
- `@Enumerated`: 指定枚举类型如何映射到数据库中,可以是`EnumType.ORDINAL`(映射为枚举的索引值)或`EnumType.STRING`(映射为枚举的名称)。
- `@Basic`: 默认注解,表明属性是简单类型,会映射到数据库的列,可选的属性是`fetch`,可以指定加载策略为`FetchType.EAGER`(立即加载)或`FetchType.LAZY`(延迟加载)。
- `@ManyToMany`, `@ManyToOne`, `@OneToMany`, `@OneToOne`: 这些注解用于处理实体之间的关系,如多对多、多对一、一对多、一对一关系。
### 实体注解示例
假设有一个简单的用户(User)实体,使用Hibernate注解如下:
```java
import javax.persistence.*;
import java.util.Date;
@Entity
@Table(name = "USER")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "USERNAME", length = 50, nullable = false, unique = true)
private String username;
@Column(name = "PASSWORD")
private String password;
@Column(name = "EMAIL")
private String email;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "CREATED_ON")
private Date createdOn;
@Lob
@Column(name = "PICTURE")
private byte[] picture;
// 省略getter和setter方法
}
```
### 实体注解的中英文对照
- `@Entity` - 实体
- `@Table` - 表
- `@Id` - 主键
- `@GeneratedValue` - 主键生成策略
- `@Column` - 列
- `@Temporal` - 时间
- `@Lob` - 大对象
- `@Transient` - 临时
- `@Enumerated` - 枚举
- `@Basic` - 基本
- `@ManyToMany` - 多对多
- `@ManyToOne` - 多对一
- `@OneToMany` - 一对多
- `@OneToOne` - 一对一
掌握这些注解,就能够灵活地在Hibernate框架中对实体进行配置和操作。对于刚接触Hibernate的人来说,了解和使用这些注解是学习ORM技术的重要步骤。通过注解,可以以一种更加面向对象的方式来操作数据库,提高开发效率,并增强代码的可读性和可维护性。
相关推荐










zhongying125
- 粉丝: 11
最新资源
- 图解SQLServer2000基础操作教程详解
- 掌握VB高级程序设计的核心技巧与实例讲解
- PB实现的QQ和RTX消息自动化发送工具
- 全面解析Spring.NET框架的中文参考文档
- TrayTool:一键隐藏托盘图标实用工具
- 软件开发计划书模板使用指南与各阶段文档要点
- C#实现的32k高精度计时器源码解析
- 源码分享:DELPHI编写的EXE加壳工具
- 探索IBM RAP技术:配置与开发环境解析
- C#实现基础运算的简单计算器设计
- JMock开发包及文档资源下载
- NEHE图形教程SDK与框架源码分析
- C#学习手册:多媒体教学与分卷压缩指南
- MX COMPONENT:三菱PLC开发组件的使用与通讯细节简化
- C#源码实现:数据方法界面分离的计算器程序
- 自制个性化铃声工具:轻松剪辑MP3片段
- 深入解析Cisco CCNA/CCNP教材中的关键概念与协议
- 精选办公网页设计图标素材下载
- Xerces-J-bin.2.9.1压缩包下载指南
- Struts文件上传入门实例分析
- C#航班查询系统实战教程
- 开发完整的c# .Net网上书店系统教程
- 全面支持CSF格式的多功能播放器
- 一元多项式与哈夫曼树:数据结构课程设计深度解析