本文向大家介绍Hibernate会话工厂,可能好多人还不了解Hibernate会话工厂,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。
安装Hibernate Annotation
要使用 Hibernate Annotation,您至少需要具备 Hibernate 3.2和Java 5。可以从 Hibernate 站点 下载 Hibernate 3.2 和 Hibernate Annotation库。除了标准的 Hibernate JAR 和依赖项之外,您还需要 Hibernate Annotations .jar 文件(hibernate-annotations.jar)、Java 持久性 API (lib/ejb3-persistence.jar)。如果您正在使用 Maven,只需要向 POM 文件添加相应的依赖项即可,如下所示:
- ...
- <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会话工厂。尽管无需惊天的修改,但这一工作与使用 Hibernate Annotations有所不同。您需要使用AnnotationConfiguration 类来建立会话工厂:
- sessionFactory = new AnnotationConfiguration().buildSessionFactory();
尽管通常使用 <mapping> 元素来声明持久性类,您还是需要在 Hibernate 配置文件(通常是 hibernate.cfg.xml)中声明持久性类:
- <!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">- <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 框架,可以使用 AnnotationSessionFactoryBean 类轻松建立一个基于注释的Hibernate会话工厂,如下所示:
- <!-- 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>
【编辑推荐】