JBOSS EAP 6 系列七 JPA/hibernate

简介

        本节与JBOSS EAP 6.1(JBOSS AS7)关系不太大,怀着对JPA的热衷,简单介绍一些JPA/hibernate相关的零散内容。

 

一、 JPA与hibernate的关系

        简单的知识普及:JPA是规范,hibernate是实现(虽然实现得稍微超越了规范)。自EntityBean从EJB的剥离便奠定了JPA规范的产生,到EJB3.0时代有了Annotation的支持JPA更是如日中天,这两个重大事件使的JPA彻底走出hibernate的阴影,拜托了类似ISO被TCP/IP完全忽略的命运。

 

二、 Anotation

        自从EJB3.0之后Annotation巨大的提高了开发速度,强烈推荐Annotation。相关的文章很多,就不在此赘述了,推荐一文http://www.docin.com/p-504500504.html

 

三、 JPA/hibernate配置

        以下是一段JBOSSEAP 6.1中的JPA/hibernate4(带容器级Transaction)的配置,仅供参考,

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/persistence" version="1.0">
  <persistence-unit name="leo">
  	<provider>org.hibernate.ejb.HibernatePersistence</provider>  
  	<jta-data-source>java:jboss/datasource/OracleDS</jta-data-source>  
  	<properties>
 		<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect" />
  	</properties>
  </persistence-unit>
</persistence>


……
       <property name="hibernate.connection.datasource">java:jboss/datasource/OracleDS</property>
              <property name="hibernate.session_factory_name">java:comp/hibernate_session_factory</property>
              <property name="hibernate.current_session_context_class">jta</property>
              <property name="hibernate.transaction.manager_lookup_class">
              org.hibernate.transaction.JBossTransactionManagerLookup</property>
              <property name="hibernate.transaction.factory_class">
              org.hibernate.engine.transaction.internal.jta.CMTTransactionFactory</property>
              <property name="hibernate.transaction.jta.platform">
              org.hibernate.service.jta.platform.spi.JtaPlatform</property>
 
              <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
              <property name="hibernate.show_sql">true</property>
     
……


四、 获得Hibernatesession factory


4.1 JPA方法

@PersistenceUnit(unitName="leo")

private SessionFactory sessionFactory;

 

4.2 JNDI查询

@Resource

private SessionContext sessionContext

sessionContext.lookup("java:comp/hibernate_session_factory");

 

小结

本文怀着对JPA的强烈推崇,对JPA/hibernate进行了一些简单的背景介绍,给了一个现成的JPA/hibernate配置文件,以及获得hibernate session factory的两种方法。

你可能感兴趣的:(Hibernate,jboss,jpa,EAP,jboss7)