Hibernate Annotations 3.4.0.GA 实战指南
需积分: 10 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中使用注解进行对象关系映射,帮助开发者更方便地管理数据持久层,提高开发效率。
2008-12-10 上传
2012-08-22 上传
2008-11-30 上传
2008-10-28 上传
2009-04-20 上传
2010-05-14 上传
2019-03-01 上传
2013-06-28 上传
malie0
- 粉丝: 0
- 资源: 1
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用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制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析