Hibernate Annotations Reference Guide

需积分: 9 0 下载量 62 浏览量 更新于2024-10-03 收藏 479KB PDF 举报
“Hibernate Annotations(English) - Hibernate 注解的英文参考指南,由 Emmanuel Bernard 编写,涵盖了设置、实体映射、查询映射以及 Hibernate 的扩展注解等内容。” 《Hibernate Annotations》是关于如何使用注解在 Hibernate 框架中进行对象关系映射的详细指南。这本书的3.5.6-Final版本主要介绍了如何利用 Java Persistence API (JPA) 和 Hibernate 自身的注解来简化 ORM(对象关系映射)过程。 1. 设置 annotations 项目 - 需求:在开始之前,你需要一个支持 JPA 和 Hibernate 的开发环境。 - 配置:配置包括引入必要的依赖库,配置 Hibernate 的核心文件,如 `persistence.xml` 或者应用相关的配置类。 - 属性:理解并配置 Hibernate 配置属性,例如数据库连接信息、缓存设置等。 - 日志:配置日志系统,如 Log4j 或 SLF4J,以便于调试和跟踪应用行为。 2. 映射实体 - 简介:实体是数据库中的表对应的概念,通过注解将 Java 类与数据库表关联起来。 - JPA 映射:使用 `@Entity` 标记 Java 类作为持久化实体,`@Table` 定义对应数据库表名。 - 简单属性映射:`@Column` 注解用于映射字段到列,`@Basic` 指定基本类型属性的映射。 - 标识符属性映射:`@Id` 标识主键,`@GeneratedValue` 控制主键生成策略。 - 继承映射:`@Inheritance` 和 `@DiscriminatorColumn` 处理多态继承关系。 - 实体关联/关系映射:`@ManyToOne`, `@OneToMany`, `@OneToOne`, `@ManyToMany` 分别处理一对一、一对多、多对一、多对多的关系。 - 复合主键和外键到复合主键的映射:使用 `@EmbeddedId` 和 `@AssociationOverride` 处理复杂主键结构。 - 二级表映射:`@SecondaryTable` 将一个实体映射到多个表。 - 缓存实体:`@Cacheable` 和 `@Cache` 注解实现缓存策略。 3. 映射查询 - JP-QL/HQL 查询映射:`@NamedQuery` 和 `@NamedNativeQuery` 定义预编译的 JP-QL 和 SQL 查询。 - 原生 SQL 查询映射:使用 `@NamedNativeQuery` 直接编写 SQL 查询。 4. Hibernate 注解扩展 - 实体:`@EntityListeners` 注解允许定义实体监听器。 - 标识符:`@GenericGenerator` 可以自定义生成器策略。 - 属性:`@Temporal` 对日期和时间类型进行特殊处理。 - 继承:`@Inheritance(strategy=InheritanceType.SINGLE_TABLE)` 等定义继承策略。 - 单关联相关注解:如 `@JoinColumn` 控制关联列的属性。 - 集合相关注解:`@OrderColumn` 和 `@ElementCollection` 处理集合排序和元素存储。 - 级联操作:`@Cascade` 控制操作的级联行为。 - 过滤器:`@Filter` 和 `@FilterDef` 提供动态条件查询的能力。 - 查询:`@SQLInsert`, `@SQLUpdate`, `@SQLDelete` 定义自定义的 CRUD SQL 语句。 - Tuplizer:允许自定义对象的实体模式实现。 - Fetch profiles:`@FetchProfile` 用于控制懒加载和 Eager Fetching 策略。 - 覆盖默认行为:书中可能还涉及了如何通过注解覆盖 Hibernate 的默认行为。 这份文档深入地讲解了 Hibernate 注解的使用,对于理解和实践 Hibernate ORM 是非常有价值的资源。无论是初学者还是有经验的开发者,都可以从中获得关于如何优雅地处理 Java 对象与数据库交互的指导。