Hibernate注解参考指南:实体映射与查询
5星 · 超过95%的资源 需积分: 9 100 浏览量
更新于2024-07-31
收藏 479KB PDF 举报
“Hibernate Annotations 参考指南 3.5.6-Final,由 Emmanuel Bernard 编写,涵盖了关于使用 Hibernate 的注解进行 Java 持久化开发的详细内容。”
在 Hibernate 中,注解是一种强大的工具,允许开发者通过在类和属性上添加元数据来简化对象关系映射(ORM)。本参考指南主要围绕以下主题展开:
1. 设置注解项目:
- 需求:在开始使用 Hibernate 注解之前,你需要确保具备 Java 开发环境、Hibernate 库和兼容的 JPA(Java Persistence API)环境。
- 配置:配置包括对 Hibernate 的依赖设置,以及在项目中引入相应的注解库。
- 属性:配置文件中的属性可以指定数据库连接、方言、缓存等设置。
- 日志:设置日志系统,以便在开发过程中跟踪和调试问题。
2. 映射实体:
- 介绍:实体是 ORM 中的核心概念,代表数据库中的表或视图。
- 使用 JPA 注解:通过 `@Entity` 标记一个 POJO(Plain Old Java Object)为持久化实体。其他常用的 JPA 注解包括 `@Id`(主键),`@GeneratedValue`(自动生成主键),`@Column`(字段映射)等。
- 映射简单属性:如字符串、整数等基本类型,使用 `@Column` 注解指定列名和属性。
- 映射标识符属性:`@Id` 和 `@GeneratedValue` 注解用于定义主键策略。
- 映射继承:使用 `@Inheritance` 和 `@DiscriminatorColumn` 注解处理类继承和子类的映射。
- 映射实体关联/关系:`@OneToOne`, `@OneToMany`, `@ManyToOne`, `@ManyToMany` 分别对应一对一、一对多、多对一和多对多的关系映射。
- 映射复合主键和外键到复合主键:`@EmbeddedId` 和 `@Embeddable` 用于处理复合主键,`@ManyToOne` 或 `@JoinColumn` 处理与复合主键的关联。
- 映射次级表:`@SecondaryTable` 用于将实体映射到多个数据库表。
- 缓存实体:`@Cacheable` 和 `@CacheRegion` 注解用于实现缓存策略。
3. Hibernate 注解扩展:
- 实体:除了 JPA 提供的 `@Entity`,Hibernate 还提供了扩展注解,如 `@DynamicInsert` 和 `@DynamicUpdate`。
- 标识符:`@GenericGenerator` 允许定义自定义的主键生成策略。
- 属性:`@Version` 用于乐观锁,`@Temporal` 处理日期时间类型。
- 继承:`@Inheritance(strategy=InheritanceType.SINGLE_TABLE)` 等定义继承策略。
- 单个关联相关的注解:例如 `@Cascade` 用于定义级联操作。
- 集合相关的注解:如 `@OrderBy` 对集合排序,`@ElementCollection` 映射非关联属性。
- 级联:`@Cascade` 控制操作如何影响关联对象。
- 过滤器:`@Filter` 和 `@FilterDef` 实现运行时条件查询过滤。
- 查询:`@NamedQuery` 和 `@NamedNativeQuery` 定义预编译的查询。
- 自定义 CRUD 操作的 SQL:`@SQLDelete`, `@SQLInsert`, `@SQLUpdate` 注解允许直接编写 SQL。
- Tuplizer:允许自定义实体的实例化和属性访问。
- 加载配置:`@FetchProfile` 用于控制实体的懒加载和批加载策略。
4. 覆盖默认行为:
- 这一部分可能涉及如何通过注解重写 Hibernate 的默认行为,如定制查询生成、更新策略等。
该参考指南全面介绍了 Hibernate 中使用注解进行对象关系映射的方法,涵盖了从基础的实体映射到复杂的关联管理和定制查询的各个方面,是学习和理解 Hibernate 注解技术的重要参考资料。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2020-04-15 上传
2012-03-22 上传
2008-07-13 上传
2014-02-19 上传
smilywho
- 粉丝: 0
- 资源: 4
最新资源
- Python库 | flaskquotes-1.0.7.tar.gz
- 新浪登陆源码-易语言.zip
- html滚动新闻html滚动新闻
- weixin047校园二手交易平台的小程序+ssm(源码+部署说明+演示视频+源码介绍+lw).rar
- 创业计划书-099_商业计划书基本内容(doc21)
- WebGrader : An Automated Essay Grader-开源
- :mantelpiece_clock:小(280B)相对时间字符串功能(例如:“ 3秒前”)-JavaScript开发
- content_1670403736149.rar
- 106-2RSampleCode
- 过压欠压保护电路multisim源文件,multisim10以上版本可打开运行.zip
- weixin085警务辅助人员管理系统+ssm(源码+部署说明+演示视频+源码介绍+lw).rar
- PHP和易语言通讯RSA和RC加密-易语言.zip
- 基于AT89S52单片机C语言应用100例_51单片机(论文+开题报告+源代码+详解图+毕业设计).zip
- Recursive Asteroids 3D-开源
- 适用于VueJ的简单且易于破解的文件上传器。 支持Vue> = 2.1-JavaScript开发
- RESTServer:简单的 REST 服务器示例