Hibernate映射文件详解:cascade关系、默认加载风格和schema配置
需积分: 9 62 浏览量
更新于2024-09-15
1
收藏 57KB DOC 举报
Hibernate 映射文件详解
Hibernate 映射文件是 Hibernate 框架中一个非常重要的组件,用于定义对象关系型数据库(Object-Relational Mapping,ORM)中对象与数据库表之间的映射关系。在 Hibernate 中,映射文件通常以 `.hbm.xml` 结尾,用于描述对象与数据库表之间的映射关系。
**级联(Cascade)关系**
级联关系是 Hibernate 映射关系中一个非常重要的概念。它指的是当主控方执行操作时,关联对象(被动方)是否同步执行同一操作。例如,当用户(TUser)被更新或者删除时,其所关联的组(TGroup)不应被修改或者删除,因此,级联关系设置为 none。当设为 all 时,一旦删除了一个 TGroup,所有在这个 TGroup 内的用户都会被删除。
在 Hibernate 中,级联关系可以设置为以下几种:
* all:所有情况下均进行级联操作。
* none:所有情况下均不进行级联操作。
* save-update:在执行 save-update 时进行级联操作。
* delete:在执行 delete 时进行级联操作。
**映射文件的基本结构**
一个基本的 Hibernate 映射文件通常包括以下几个部分:
* `hibernate-mapping`:根元素,用于指定 Hibernate 映射文件的版本和 schema 名称。
* `default-access`:用于指定 Hibernate 用来访问属性的策略,默认为 `property`。
* `default-lazy`:用于指定未明确注明 lazy 属性的 Java 属性和集合类,默认为 `true`。
* `schema`:用于指定映射的表所在的 schema 名称。
* `default-cascade`:用于指定默认的级联风格,默认为 `none`。
* `auto-import`:用于指定是否在查询语言中可以使用非全限定名的类名,默认为 `true`。
* `package`:用于指定一个包前缀。
**unsaved-value**
unsaved-value 是一个可选的属性,用于指定一个特定的标识属性值,用来标志该实例是刚刚创建的,尚未保存。这可以把这种实例和从以前的 session 中装载过(可能又做过修改)但未再次持久化的实例区分开来。
在 Hibernate 中,unsaved-value 可以设置为一个字段判断(sensible)的值,例如,使用一个 timestamp 字段来标志实例的创建时间。
**总结**
Hibernate 映射文件是一个非常重要的组件,用于定义对象与数据库表之间的映射关系。级联关系是 Hibernate 映射关系中一个非常重要的概念,用于指定当主控方执行操作时,关联对象(被动方)是否同步执行同一操作。映射文件的基本结构包括 `hibernate-mapping`、`default-access`、`default-lazy`、`schema`、`default-cascade`、`auto-import` 和 `package` 等部分。unsaved-value 是一个可选的属性,用于指定一个特定的标识属性值,用来标志该实例是刚刚创建的,尚未保存。
2012-01-13 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
2008-10-17 上传
gz_tan2012
- 粉丝: 0
- 资源: 7
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用git-log-to-tikz.py将Git日志转换为TIKZ图形
- 小栗子源码2.9.3版本发布
- 使用Tinder-Hack-Client实现Tinder API交互
- Android Studio新模板:个性化Material Design导航抽屉
- React API分页模块:数据获取与页面管理
- C语言实现顺序表的动态分配方法
- 光催化分解水产氢固溶体催化剂制备技术揭秘
- VS2013环境下tinyxml库的32位与64位编译指南
- 网易云歌词情感分析系统实现与架构
- React应用展示GitHub用户详细信息及项目分析
- LayUI2.1.6帮助文档API功能详解
- 全栈开发实现的chatgpt应用可打包小程序/H5/App
- C++实现顺序表的动态内存分配技术
- Java制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析