Hibernate Annotations指南:实体映射与扩展
需积分: 9 148 浏览量
更新于2024-07-30
收藏 475KB PDF 举报
“Hibernate Annotations 参考指南 3.5.6-Final,由 Emmanuel Bernard 编写,是一本深入学习 Hibernate 注解的理想电子书。”
在 IT 领域,Hibernate 是一个广泛使用的对象关系映射(ORM)框架,它允许开发者使用 Java 对象来操作数据库。Hibernate Annotations 版本 3.5.6 提供了一种更简洁、类型安全的方式来映射 Java 类到数据库表,而无需使用 XML 配置文件。这本书主要涵盖了以下几个关键知识点:
1. 设置注解项目:
- 需求:在开始使用 Hibernate 注解之前,你需要具备 Java 开发环境和 Hibernate 库,以及一个支持注解的 Java 应用程序服务器或运行时环境。
- 配置:配置包括添加 Hibernate 和相关依赖库到项目类路径,以及设置应用的 Hibernate 属性。
- 属性:配置文件中通常包含数据库连接信息、缓存设置等。
- 日志:为了调试和监控,配置合适的日志系统(如 log4j)是必要的。
2. 映射实体:
- 简介:实体是与数据库表相对应的 Java 类,可以使用 JPA(Java Persistence API)注解来标记。
- JPA 注解:
- 持久化实体:使用 `@Entity` 注解标记一个类作为持久化实体。
- 简单属性:`@Column` 注解用于映射字段到数据库列,还可以指定长度、是否可为空等属性。
- 标识符属性:`@Id` 注解用于标识实体的主键,`@GeneratedValue` 可以控制主键生成策略。
- 继承:`@Inheritance` 和 `@DiscriminatorColumn` 注解处理类继承关系的映射。
- 关联/关系:`@OneToOne`, `@ManyToOne`, `@OneToMany`, `@ManyToMany` 分别表示一对一、一对多、多对一和多对多的关系。
- 复合主键:`@EmbeddedId` 和 `@Embeddable` 注解用于处理复合主键的情况。
- 次级表:`@SecondaryTable` 用于将一个实体映射到多个表。
- 缓存:`@Cacheable` 和 `@Cache` 注解可启用缓存策略。
3. 查询映射:
- JP-QL/HQL 查询:`@NamedQuery` 和 `@NamedNativeQuery` 分别用于声明预定义的 JP-QL 和原生 SQL 查询。
- 原生 SQL 查询:当需要使用特定于数据库的 SQL 语句时,可以使用 `@NamedNativeQuery`。
4. Hibernate 注解扩展:
- 包括 `@Entity`, `@Identifier`, `@Property`, `@Inheritance`, `@SingleAssociation`, `@Collection`, `@Cascade`, `@Filters`, `@Queries`, `@CustomSQL`, `@Tuplizer` 和 `@FetchProfiles` 等,这些是 Hibernate 扩展的特定注解,提供了更多高级功能和定制选项。
5. 覆盖默认行为:
- 在某些情况下,可能需要覆盖 Hibernate 的默认行为,例如通过注解来指定自定义的 SQL 操作,或者创建特定的 fetch profiles 来控制懒加载策略。
这本参考指南详细地介绍了如何使用 Hibernate 注解进行对象关系映射,包括实体的映射、关系管理、查询定义以及利用 Hibernate 的扩展功能,对于开发使用 Hibernate 的 Java 应用程序来说,是一份非常有价值的资源。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2010-03-28 上传
2008-11-30 上传
2014-04-07 上传
2009-04-20 上传
2008-10-28 上传
2010-05-14 上传
yifeiroro
- 粉丝: 0
- 资源: 14
最新资源
- 禁止网页右键功能文档
- Linux设备驱动开发技术及应用
- VMware数据備份和恢復方法
- 普通高校校园办公网软件整体解决方案
- 练成Linux系统高手教程
- USB2.0设备驱动开发文档
- HTTP协议中文.pdf
- Unix_Linux命令速查表
- Linguistic Support forin C++ Generic Programming
- quartus ii 教程
- Apress.Practical Ajax Projects with Java Technology
- VC_C++笔试面试之葵花宝典最新版20090522.doc
- JAVA+笔记(实训共享)
- Visual+C++面向对象与可视化程序设计
- JASPER中文开发手册
- getting_started_with_Flex3.pdf