Hibernate 映射文件(.hbm.xml)详解:从基础映射到高级配置
Hibernate 映射文件(通常以 .hbm.xml 命名,如 User.hbm.xml)是 ORM 思想的核心载体,负责定义 Java 持久化类 与 数据库表 之间的映射关系(包括类与表、属性与字段、主键生成策略等)。本文基于示例配置,从基础标签到高级特性,全面解析映射文件的核心功能与最佳实践。
映射文件基础结构
1 |
|
- DOCTYPE 约束:指定映射文件的 DTD 规范(版本 3.0),确保标签和属性合法;
- 根标签
<hibernate-mapping>:可配置全局默认值(如包名、访问策略),简化子标签配置; - 核心标签
<class>:定义单个 Java 类与数据库表的映射关系,是映射文件的核心。
核心标签详解
1. <class>:类与表的映射
<class> 标签是映射文件的核心,负责关联 Java 类和数据库表,支持多种属性控制映射行为。
(1)基础属性
| 属性名 | 作用描述 | 示例值 |
|---|---|---|
name |
Java 持久化类的全类名(若根标签指定 package,可省略包名) |
com.zhanghe.study.model.User |
table |
对应的数据库表名(默认与类名相同,建议显式指定,避免大小写问题) | t_user |
dynamic-insert |
动态生成 INSERT 语句:仅包含非 null 的属性(减少无效字段插入) |
true/false(默认 false) |
dynamic-update |
动态生成 UPDATE 语句:仅包含被修改的属性(减少 SQL 长度,提升性能) |
true/false(默认 false) |
mutable |
是否允许更新 / 删除:false 表示实例不可修改,等价于所有 <property> 的 update="false" |
true/false(默认 true) |
lazy |
是否启用延迟加载(仅对关联查询有效,如一对多关系) | true/false(默认 true) |