精通Hibernate:配置文件、Flush模式与关联关系
需积分: 10 5 浏览量
更新于2024-09-14
收藏 39KB DOC 举报
"这篇文档主要介绍了Hibernate框架的一些实用技巧,包括配置文件的使用方式、Session的管理、对象字段类型、XDoclet的运用、HQL的规则、关系映射的配置以及集合类型的选择等。"
在使用Hibernate这个流行的Java持久化框架时,有几点需要注意的技巧:
1. **配置文件**:Hibernate支持两种配置文件形式,`hibernate.cfg.xml` 和 `hibernate.properties`。前者可以直接包含映射文件配置,后者则需要手动添加映射类。配置文件的名称和位置不是固定的,可以自定义,并通过`Configuration`类的相应方法加载。
2. **Session的管理**:`Session.flush()` 方法用于强制将缓存中的更改同步到数据库。通常,在事务处理中无需手动调用,因为事务提交时会自动执行flush。在Session关闭时,也会执行flush操作。
3. **对象字段类型**:Hibernate推荐使用对象类型作为字段类型,以更好地支持对象关系映射。
4. **XDoclet**:XDoclet是一个工具,能够通过分析Java源代码中的特定注释,自动生成Hibernate的映射文件,简化开发过程。
5. **HQL查询**:Hibernate查询语言(HQL)对语句本身的大小写不敏感,但涉及到的类名和属性名需要遵循Java的大小写规则。
6. **关系映射**:在关系映射中,`Constrained` 表示主控表的主键被外键约束。`property-ref` 指定关联类中的属性,用于与主控类建立关联。在单向一对多关系中,配置需要在一方完成;而在双向一对多关系中,需要在双方进行配置。
7. **懒加载与`lazy=false`**:当`lazy=false`时,被动方的记录由Hibernate在加载主控方时一并加载,并存储在主控方的集合属性中。
8. **集合类型选择**:在表示多的一方,可以选择`java.util.Set`或`net.sof.hibernate.collection.Bag`等集合类型。不同的集合类型有不同的特性,如Set不允许重复元素,而Bag则允许。
9. **`inverse`属性**:`inverse`标识双向关联中的被动方,`inverse=false`的一方(主控方)负责维护关联关系,通常是拥有外键的一方。
10. **批量加载与`batch-size`**:当启用延迟加载时,`batch-size`用来设置一次性从数据库读取的数据量,可以优化性能。
11. **一对多关系的维护**:在一对多的关系中,通常通过主控方进行更新,以保持数据的一致性。
掌握这些技巧有助于更高效、更灵活地使用Hibernate进行数据库操作,提高开发效率,并优化应用程序的性能。在实际项目中,根据具体需求选择合适的配置和策略是至关重要的。
2022-10-29 上传
2007-08-31 上传
2020-12-16 上传
2019-08-08 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
lcl_cat
- 粉丝: 0
- 资源: 4
最新资源
- 构建基于Django和Stripe的SaaS应用教程
- Symfony2框架打造的RESTful问答系统icare-server
- 蓝桥杯Python试题解析与答案题库
- Go语言实现NWA到WAV文件格式转换工具
- 基于Django的医患管理系统应用
- Jenkins工作流插件开发指南:支持Workflow Python模块
- Java红酒网站项目源码解析与系统开源介绍
- Underworld Exporter资产定义文件详解
- Java版Crash Bandicoot资源库:逆向工程与源码分享
- Spring Boot Starter 自动IP计数功能实现指南
- 我的世界牛顿物理学模组深入解析
- STM32单片机工程创建详解与模板应用
- GDG堪萨斯城代码实验室:离子与火力基地示例应用
- Android Capstone项目:实现Potlatch服务器与OAuth2.0认证
- Cbit类:简化计算封装与异步任务处理
- Java8兼容的FullContact API Java客户端库介绍