本节与JBOSS EAP 6.1(JBOSS AS7)关系不太大,怀着对JPA的热衷,简单介绍一些JPA/hibernate相关的零散内容。
简单的知识普及:JPA是规范,hibernate是实现(虽然实现得稍微超越了规范)。自EntityBean从EJB的剥离便奠定了JPA规范的产生,到EJB3.0时代有了Annotation的支持JPA更是如日中天,这两个重大事件使的JPA彻底走出hibernate的阴影,拜托了类似ISO被TCP/IP完全忽略的命运。
自从EJB3.0之后Annotation巨大的提高了开发速度,强烈推荐Annotation。相关的文章很多,就不在此赘述了,推荐一文http://www.docin.com/p-504500504.html
以下是一段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> ……
@PersistenceUnit(unitName="leo")
private SessionFactory sessionFactory;
@Resource
private SessionContext sessionContext
sessionContext.lookup("java:comp/hibernate_session_factory");
本文怀着对JPA的强烈推崇,对JPA/hibernate进行了一些简单的背景介绍,给了一个现成的JPA/hibernate配置文件,以及获得hibernate session factory的两种方法。