Hibernate 3 Annotations进阶(1)

发表于:2007-06-11来源:作者:点击数: 标签:
在过去,Hibernate 依靠外部的XML文件来配置持久化对象, 数据库 映射文件定义在一组XML映射文件里并且在程序开始的时候被装载。有很多办法来创建这些映射文件,或者自动从一个已存在的数据库模式里创建,或者手动从 java 类对象中创建。不管那种情况,你都

在过去,Hibernate 依靠外部的XML文件来配置持久化对象,数据库映射文件定义在一组XML映射文件里并且在程序开始的时候被装载。有很多办法来创建这些映射文件,或者自动从一个已存在的数据库模式里创建,或者手动从java类对象中创建。不管那种情况,你都得产生一大堆Hibernate 映射文件而结束工作。你也可以利用外部工具从javadoc-style 的注解中生成映射文件,但这给你的开发流程增加了额外的负担。

在最近的Hibernate版本里,一个新的建立在Java 5 注解之上更为优雅的方法出现了。利用新的Hibernate Annonations 库,你可以发布一次如你以前的映射文件所定义的信息,你猜到了-注解直接嵌入你的Java类文件里。注解带来了一种强大灵活地声明持久化映射的办法。在最新版的几个Java集成开发环境里都很好的支持,并带有代码自动完成和语法高亮功能。

Hibernate annotations也支持最新的EJB 3持久化规范,这些规范目的是提供一个标准的Java持久化机制。当然Hibernate 3也提供了更多的解决方案,你能非常容易的靠近保准并且利用EJB 3编程模型编写你的Hibernate持久化层。

现在让我们一步步了解Hibernate Annotations。

安装 Hibernate Annotations

为了使用Hibernate Annotations,你需要最新的Hibernate 3.2 ,当然还有Java 5 你可以在Hibernate web site 这个网站下载Hibernate 3.2和Hibernate Annotations库。除了标准的Hibernate 库文件和必须的依赖库之外,还需要下载 Hibernate Annotations库和Java 持久化API ---ejb3-persstence.jar文件。如果你正在使用Maven,仅仅添加相应的依赖到你的DOM文件里,如下所示:

...

<dependency>

<groupId>org.hibernate</groupId>

<artifactId>hibernate</artifactId>

<version>3.2.1.ga</version>

</dependency>

<dependency>

<groupId>org.hibernate</groupId>

<artifactId>hibernate-annotations</artifactId>

<version>3.2.0.ga</version>

</dependency>

<dependency>

<groupId>javax.persistence</groupId>

<artifactId>persistence-api</artifactId>

<version>1.0</version>

</dependency>

...

下一步是获得一个Hibernate Session 工厂。利用Hibernate Annotations与不使用它创建Hibernate session工厂有一点不同,虽然不需要大幅度修改。你只需须简单地使用AnnotationConfiguration类安装你的session工厂:

 sessionFactory

=new AnnotationConfiguration().buildSessionFactory();

一般的,你需要通过元素在Hibernate配置文件里(hibernate.cfg.xml)声明持久化类。

<hibernate-configuration>

<session-factory>

<mapping class="com.onjava.modelplanes.domain.PlaneType"/>

<mapping class="com.onjava.modelplanes.domain.ModelPlane"/>

</session-factory>

</hibernate-configuration>
 

如今许多java 工程都使用轻量级的程序框架例如Spring.如果你正在用Spring框架,你可以容易地利用AnnotationSessionFactory类装配一个基于Annotations 的Hibernate Session Factory,如下:

<!-- Hibernate session factory -->

<bean id="sessionFactory"

class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">

<property name="dataSource">

<ref bean="dataSource"/>

</property>

<property name="hibernateProperties">

<props>

<prop key="hibernate.dialect">org.hibernate.dialect.DerbyDialect</prop>

<prop key="hibernate.hbm2ddl.auto">create</prop>

...

</props>

</property>

<property name="annotatedClasses">

<list>

<value>com.onjava.modelplanes.domain.PlaneType</value>

<value>com.onjava.modelplanes.domain.ModelPlane</value>

...

</list>

</property>

</bean>


共3页: 1 [2] [3] 下一页

原文转自:http://www.ltesting.net

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
...