Hibernate Annotations 3.4.0.GA 实战指南

需积分: 10 0 下载量 174 浏览量 更新于2024-09-22 收藏 251KB PDF 举报
“hibernate_annotations”是关于Hibernate框架中使用Java注解进行对象关系映射的指南,主要涵盖了在Hibernate 3.4.0.GA版本中的各种注解配置和实体 bean 的映射方法。 在Hibernate中,注解提供了一种简洁的方式来声明对象模型与数据库表之间的映射,避免了传统的XML配置文件。以下是一些关键知识点: 1. **设置注解项目**: - **要求**:使用Hibernate Annotations需要Java 5或更高版本,以及Hibernate核心库。 - **配置**:在项目中添加必要的依赖,包括Hibernate和JPA相关的jar包。 - **属性**:可以通过配置文件(如hibernate.properties或hibernate.cfg.xml)设置 Hibernate 属性,如数据库连接信息、方言等。 - **日志**:可以配置日志系统,如Log4j,以便在开发过程中跟踪和调试信息。 2. **实体 Beans**: - **Intro**:实体Bean代表数据库中的表,它们通过注解与数据库表建立关联。 - **EJB3/JPA 注解**:这些注解遵循Java Persistence API(JPA)标准,例如@Entity、@Table、@Id等。 - **声明实体Bean**:使用@Entity注解标识一个类为实体Bean,@Table注解用于指定对应的数据库表名。 - **乐观锁版本控制**:使用@Version注解实现乐观锁,通过版本字段来防止并发更新冲突。 3. **简单属性映射**: - **基本属性映射**:使用@Column注解定义字段的列名、长度、是否可为空等属性。 - **嵌入对象(组件)**:使用@Embeddable和@Embedded注解将一个类作为另一个类的组成部分,它们的属性会映射到同一张表中。 - **非注解属性默认值**:未明确注解的属性会有默认的映射行为。 4. **标识符属性映射**: - 主键的映射,可以使用@Id注解标识主键字段,@GeneratedValue注解来自动生成主键值。 5. **继承映射**: - **Table per class**:每个类对应一张表,所有属性都存储在同一张表中。 - **Single table per class hierarchy**:单表继承,所有子类的属性都存储在一张表中,通过一个类型字段来区分不同类。 - **Joined subclasses**:每个子类对应一张表,父类属性存储在一张表,子类属性在各自的表中。 - **Inherit properties from superclasses**:子类可以继承父类的属性和映射。 6. **实体Bean关联/关系映射**: - **一对一**:使用@OneToOne注解表示一对一的关系,可指定外键约束。 - **多对一**:使用@ManyToOne注解表示一个实体可以引用另一个实体的多个实例。 - **集合**:使用@OneToMany、@ManyToMany注解处理一对多或多对多关系,通常涉及到集合类型的属性,如List或Set。 - **级联操作**:@Cascade注解允许级联保存、更新、删除等操作,确保关联对象的状态同步。 - **关联加载**:@Fetch注解控制关联对象的加载策略,如选择懒加载(LAZY)或立即加载(EAGER)。 7. **复合主键和外键映射**: - 使用@EmbeddedId和@AssociationOverride注解处理由多个字段组成的主键或外键。 8. **其他高级特性**: - 可能还包括查询注解(如@NamedQuery)、转换器(@Convert)、定时事件(@PrePersist, @PostLoad等)等。 这个指南详细介绍了如何在Hibernate中使用注解进行对象关系映射,帮助开发者更方便地管理数据持久层,提高开发效率。