首先从Hibernate官方网站下载并解压Hibernate Annotations的发布包。
这个预览版要求使用Hibernate 3.1.1或更高版本。请不要和老版本的Hibernate 3.x混合起来使用。
这个版本在Hibernate core 3.1.1的基础上工作良好。
首先确定你已经安装了JDK 5.0。当然就算使用低版本的JDK,
你仍然可以通过使用Xdoclet获得基于注解的元数据带来的部分好处。
不过请注意本文档只描述跟JDK5.0注解有关的内容,关于Xdoclet请参考相关文档。
首先就是设置classpath(当然是在IDE中创建了一个新项目之后)。
将Hibernate3核心文件以及其依赖的第三方库文件(请参考lib/README.txt文件)加入到你的classpath里面。
将hibernate-annotations.jar
和lib/ejb3-persistence.jar
加入到你的classpath 里面。
如果要使用 ,还需要将lucene的jar文件加入你的classpath。
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().buildSessionFactory();
} catch (Throwable ex) {
// Log exception!
throw new ExceptionInInitializerError(ex);
}
}
public static Session getSession()
throws HibernateException {
return sessionFactory.openSession();
}
}
我们推荐在一个包装器(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().buildSessionFactory();
} catch (Throwable ex) {
// Log exception!
throw new ExceptionInInitializerError(ex);
}
}
public static Session getSession()
throws HibernateException {
return sessionFactory.openSession();
}
}
这里比较有意思的是使用到了AnnotationConfiguration
类。
在XML配置文件(通常是hibernate.cfg.xml
)中则定义了包和经过注解的类。下面的xml和前面的声明等价:
注意现在你可以混合使用hbm.xml和注解.
除了上面的方式,你还可以通过编程的方式定义包括注解的类和包
sessionFactory = new AnnotationConfiguration()
.addPackage("test.animals") //the fully qualified package name
.addAnnotatedClass(Flight.class)
.addAnnotatedClass(Sky.class)
.addAnnotatedClass(Person.class)
.addAnnotatedClass(Dog.class)
.buildSessionFactory();
你也可以使用Hibernate Entity Manager来完成以上功能。Hibernate Entity Manager有自己的一套配置机制,详情请参考相关文档。
除了启动方式和配置文件有所改变之外,结合注解来使用Hibernate API和以前没有什么区别,
在其他方面你还是可以继续保持以前的习惯和喜好(hibernate.properties
,
hibernate.cfg.xml
, programmatic APIs等等)。
甚至对于同一个SessionFactory
,你都可以混合带注解的持久类以及传统的bm.cfg.xml声明方式。
然而你不能多次声明同一个类(要么通过注解要么通过hbm.xml配置文件),
而且在一个映射实体的类继承层次中,这两个配置策略不能同时使用.
为了简化从hbm文件到注解的迁移过程,
配置机制将自动检测在注解和hbm文件中重复的映射。
默认情况下hbm文件中的声明比类中的注解元数据具有更高的优先级。
这种优先级的设定是以类为单位的。
你也可以通过hibernate.mapping.precedence
修改这种优先级。
默认的值是hbm, class
,
如果改为class,hbm
,当发生冲突的时候,类中的注解将比hbm文件具有更高的优先级。
分享到:
相关推荐
hibernate annotation hibernate3
这里面包涵了需要用Hibernate Annotation时,所需要的所有jar包! 现在我们公司在做web项目的时候,已经不用*.hbm.xml这种映射文件了,都是用Annotation(注解)方式来完成实体与表之间的映射关系,这样看起来比用...
hibernate annotation中文文档
hibernate annotation 中文文档
很全的Hibernate Annotation API文档,页面也很漂亮,太强大了。真的很实用!我以前找了好多,都不全,这个真的很不错,推荐一下。
hibernate annotation库所需要引入的三个jar包。
Hibernate Annotation
通过HibernateAnnotation技术就不用xml文件了
Hibernate annotation 3.4 api CHM
逐渐的Hibernate Annotation的映射方式也越来越盛行,相信过不了多久有可能会取代*.hbm.xml映射方式
学习JPA——Hibernate_Annotation使用实例学习JPA——Hibernate_Annotation使用实例学习JPA——Hibernate_Annotation使用实例
hibernate 注解 annotation 教程
hibernate annotation3.3 api 文档
java SSH项目 hibernate annotation
该zip包含 hibernate3.3.2相关jar与文档,hibernate annotation3.3.4相关jar与文档。
springmvc + hibernate annotation 配置
hibernate annotation学习文档,帮助你学习hibernate
hibernate annotation spring 中文参考文档
一步步hibernate annotation练习笔记, 实例操作,从经验中学习
hibernate annotation 配置详细!