Hibernate Annotations
参考文档
3.2.0 CR1
目录
前言
1. 翻译说明
2. 版权声明
前言
1. 创建一个注解项目
1.1. 系统需求
1.2. 系统配置
2. 实体Bean
2.1. 简介
2.2. 用EJB3注解进行映射
2.2.1. 声明实体bean
2.2.1.1. 定义表(Table)
2.2.1.2. 乐观锁定版本控制
2.2.2. 映射简单属性
2.2.2.1. 声明基本的属性映射
2.2.2.2. 声明列属性
2.2.2.
3. 嵌入式对象(又名组件)
2.2.2.4. 无注解之属性的默认值
2.2.. 映射主键属性
2.2.4. 映射继承关系
2.2.4.1. 每个类一张表
2.2.4.2. 每个类层次结构一张表
2.2.4.
3. 连接的子类
2.2.4.4. 从父类继承的属性
2.2.5. 映射实体Bean的关联关系
2.2.5.1. 一对一(One-to-one)
2.2.5.2. 多对一(Many-to-one)
2.2.5.
3. 集合类型
2.2.5.4. 用cascading实现传播性持久化(Transitive persistence)
2.2.5.5. 关联关系获取
2.2.6. 映射复合主键与外键
2.2.7. 映射二级表(secondary tables)
2.3. 映射查询
2.3.1. 映射EJBQL/HQL查询
2.3.2. 映射本地化查询
2.4. Hibernate独有的注解扩展
2.4.1. 实体
2.4.2. 标识符
2.4.
3. 属性
2.4.
3.1. 访问类型
2.4.
3.2. 公式
2.4.
3.3. 类型
2.4.
3.
4. 索引
2.4.
3.5. @Parent
2.4.
3.6. 生成的属性
2.4.4. 继承
2.4.5. 关于单个关联关系的注解
2.4.5.1. 延迟选项和获取模式
2.4.6. 关于集合类型的注解
2.4.6.1. 参数注解
2.4.6.2. 更多的集合类型
2.4.7. 缓存
2.4.8. 过滤器
2.4.9. 查询
3. 通过XML覆写元数据
3.1. 原则
3.1.1. 全局级别的元数据
3.1.2. 实体级别的元数据
3.1.3. 属性级别的元数据
3.1.
4. 关联级别的元数据
4. Hibernate验证器
4.1. 约束
4.1.1. 什么是约束?
4.1.2. 内建约束
4.1.3. 错误信息
4.1.4. 编写你自己的约束
4.1.
5. 注解你的领域模型
4.2. 使用验证器框架
4.2.1. 数据库schema层次验证
4.2.2. Hibernate基于事件的验证
4.2.3. 程序级验证
4.2.4. 验证信息
5. Hibernate与Lucene集成
5.1. 使用Lucene为实体建立索引
5.1.1. 注解领域模型
5.1.2. 启用自动索引
A. 术语表
前言
WARNING! This is a translated version of the English Hibernate reference documentation. The translated version might not be up to date! However, the differences should only be very minor. Consult the English reference documentation if you are missing information or encounter a translation
error. If you like to contribute to a particular translation, contact us on the Hibernate developer mailing list.
Translator(s): RedSaga Translate Team 满江红翻译团队 <caoxg@yahoo>
1. 翻译说明
本文档的翻译是在网络上协作进行的,也会不断根据Hibernate 的升级进行更新。提供此文档的目的是为了减缓学习Hibernate 的坡度,而非代替原文档。我们建议所有有能力的读者都直接阅读英文原文。若您对翻译有异议,或发现翻译错误,敬请不吝赐教,报告到如下地址:dsaga/confluence/display/HART/Home 表 1. Hibernate Annotation v3翻译团队 关于我们
满江红.开源, dsaga
从成立之初就致力于Java 开放源代码在中国的传播与发展,与国内多个Java 团体及出版社有深入交流。坚持少说多做的原则,目前有两个团队,“OpenDoc 团队”与“翻译团队”,本翻译文档即为翻译团队作品。OpenDoc 团队已经推出包括Hibernate 、iBatis 、Spring 、WebWork 的多份开放文档,并于2005年5月在Hibernate 开放文档基础上扩充成书,出版了原创书籍:《深入浅出Hibernate 》,本书400余页,适合各个层次的Hibernate 用户。(dsaga/hibernate_book.html)敬请支持。 致谢
在我们翻译Hibernate Annotation 参考文档的同时,还有一位热心的朋友也在进行着同样
序号标题
中文标题翻译1审
2审
--Contents
目录
Liu Chang  #1
Setting up an annotations projec
创建一个注解项目
melthaw Zheng Shuai superq #2Entity Beans-Introduction
实体Bean-简介
melthaw Zheng Shuai superq #3
Entity Beans-Mapping with EJB3 Annotations 实体Bean-用EJB3注解进行映射melthaw
Zheng Shuai superq, Liu Chang, Sean Chan #4
Entity Beans-Mapping
Queries 实体Bean-映射查询
melthaw
Zheng Shuai superq, Liu Chang, Sean Chan #5
Entity Beans-Hibernate Annotation Extensions 实体Bean-Hibernate 独有的注解扩展
Sean Chan morning melthaw
#6
Overriding metadata through XML
通过XML 覆写元
数据icess
melthaw Sean Chan #7Hibernate Validator Hibernate 验证器
DigitalSonic morning
melthaw #8
Hibernate Lucene
Integration
Hibernate 与Lucene
集成mochow
morning melthaw #9Appendix:Glossary 附录:术语表
mochow
Liu Chang
曹晓钢
的工作,这位朋友就是icess(冰雨),由icess翻译的中文版的地址:
hina/hibernate/a/ref/index.htm
2. 版权声明
Hibernate英文文档属于Hibernate发行包的一部分,遵循LGPL协议。本翻译版本同样遵循LGPL协议。参与翻译的译者一致同意放弃除署名权外对本翻译版本的其它权利要求。
您可以自由链接、下载、传播此文档,或者放置在您的网站上,甚至作为产品的一部分发行。但前提是必须保证全文完整转载,包括完整的版权信息和作译者声明,并不能违反LGPL 协议。这里“完整”的含义是,不能进行任何删除/增添/注解。若有删除/增添/注解,必须逐段明确声明那些部分并非本文档的一部分。
前言
setting是什么意思中文翻译正如其他的ORM工具,Hibernate同样需要元数据来控制在不同数据表达形式之间的转化. 在Hibernate 2.x里,多数情况下表示映射关系的元数据保存在XML文本文件中. 还有一种方式就是Xdoclet,它可以在编译时利用Javadoc中的源码注释信息来进行预处理. 现在新的JDK标准(JDK1.5以上)也支持类似的注解功能,但相比之下很多工具对此提供了更强大更好用的支持. 以IntelliJ IDEA和Eclipse为例,这些IDE工具为JDK 5.0注解功能提供了自动完成和语法高亮功能. 注解被直接编译到字节码里,并 在运行时(对于Hibernate来讲就是启动的时候)通过反射读取这些注解, 因此外部XML文件就不再需要了.
EJB3规范最终认可了透明化ORM的成功范例以及市场对于这种技术的兴趣. EJB3规范标准化了ORM的基础API而且在任何ORM持久化机制中使用元数据. Hibernate EntityManager实现了EJB3持久化规范中定义的编程接口和生命周期规则. 在Hibernate Core的基础上再结合 Hibernate Annotations就实现了一套完整(并且独立)的EJB3持久化解决方案. 你可以结合三者来使用,也可以抛开EJB3编程接口和生命周期
规则而独立使用注解, 甚至只单独使用Hibernate Core. 这些都取决于项目的商业和技术上的实际需求. Hibernate允许你直接使用native APIs,如果有需要, 甚至可以直接操作JDBC和SQL.
注意本文档基于Hibernate Annotations的预览版(遵从EJB 3.0/JSR-220最终草案). 这个版本和新规范中定义的最终概念已经非常接近了.我们的目标是提供一套完整的ORM注解, 包括EJB3的标准注解以及Hibernate3的扩展(后者是EJB3规范中没有涉及到的). 最终通过注解你可以完成任何可能的映射.详情参考???.
EJB3最终草案修改了部分注解, /371.html提供了从上一个版本到最新版本的迁移指南.
第 1 章创建一个注解项目
1.1. 系统需求
首先从Hibernate下载并解压Hibernate Annotations的发布包。
这个版本(预览版)要求使用Hibernate 3.2.0.CR2或更高版本。请不要和老版本的Hibernate 3.x混
合起来使用。
这个版本在Hibernate core 3.2.0.CR2的基础上工作良好。
首先确定你已经安装了JDK 5.0。当然就算使用低版本的JDK, Xdoclet也可以提供(基于注
解的)元数据所带来的部分功能。 不过请注意本文档只描述跟JDK5.0注解有关的内容,关
于Xdoclet请参考相关文档。
1.2. 系统配置
首先就是设置classpath(当然是在IDE中创建了一个新项目之后)。
将Hibernate3核心文件以及其依赖的第三方库文件(请参考文件)加入到你的classpath里面。
将hibernate-annotations.jar和lib/ejb3-persistence.jar加入到你的classpath里面。
如果要使用 第 5 章 Hibernate与Lucene集成,还需要将lucene的jar文件加入你的classpath。
我们推荐在一个包装器(wrapper)类HibernateUtil的静态初始化代码块中启动Hibernate。或
许你在Hibernate文档的其他很多地方看到过这个类, 但是要在你的项目中使用注解,还需要
对这个辅助(helper)类进行扩展。扩展如下:
package hello;
import org.hibernate.*;
import org.hibernate.cfg.*;
import test.*;
import test.animals.Dog;
public class HibernateUtil {
private static final SessionFactory sessionFactory;
static {
try {
sessionFactory = new AnnotationConfiguration().buildSessi        } catch (Throwable ex) {
/
/ Log exception!
throw new ExceptionInInitializerError(ex);
}
}
public static Session getSession()
throws HibernateException {
return sessionFactory.openSession();
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。