openJPA1.2.2与spring2.5.6整合-J2EE

前言

openJPA1.2.2spring2.5.6的整合,确实费了我很大功夫才搞定。深夜整理成教程与大家分享。本文主要介绍思路,具体实现有很多中,希望朋友们自己探索,同时我也给出了我的代码,大家仔细阅读,一定可以的。openJPAHibernate都是JPA规范的实现,但目前使用来看,除了3种实现的扩展功能有差异以外,最主要的是通过中间件来决定使用哪种实现。

下面是业界内比较流行的搭配

JBoss -- Hibernate
SUN Oracle -- TopLink
BEA IBM – OpenJPA

试验环境:

JDK6.0.21

Tomcat6.0.29

Eclipse_3.6_javaee

整合主要分2个部分

JAR包清单

aspectjrt.jar

aspectjweaver.jar

cglib-nodep-2.1_3.jar

commons-collections-3.2.1.jar

commons-dbcp-1.4.jar

commons-lang-2.5.jar

commons-logging-1.1.1.jar

commons-pool-1.5.4.jar

geronimo-jpa_3.0_spec-1.0.jar

geronimo-jta_1.1_spec-1.1.jar

log4j-1.2.16.jar

mysql-connector-java-5.1.13-bin.jar

openjpa-1.2.2.jar

serp-1.13.1.jar

spring.jar

1 简单整合----spring管理EntityManagerFactory

首先,要对web.xml进行spring的初始化配置。

先配置log4j,后配置spring管理。

其次,配置log4j.properties

第三,配置OpenJPA/META-INF/persistence.xml

最后,把EntityManagerFactory配制到applicationContext.xml中,如果使用的是tomcat作为WEB容器则推荐配合spring-tomcat-weaver.jar使用。

2 高级整合----spring管理Transaction

首先,配置自动装载EntityManager

其次,配置事务管理器

第三,配置切面

第四,配置具体方法及事务参数

3 关于java代码的调用

2种,在spring文档里都有说明,本文只给一个提醒。这么调用的原因很简单,必须要拿到Spring管理的对象,否则事务将不能被spring控制。

   方法一(推荐)

   @PersistenceContext

    private EntityManager em;

   方法二

  EntityManagerFactory emf;

    @PersistenceUnit

    public void setEntityManagerFactory(EntityManagerFactory emf) {

        this.emf = emf;

    }

4entity

如果单纯使用OpenJPA或者只是与Spring简单整合,直接使用Entity即刻.若整合了Transaction,则EntityBean需要实现接口java.io.Serializable才可以使用.

5项目结构图

openJPA1.2.2与spring2.5.6整合-J2EE

你可能感兴趣的:(spring,log4j,Hibernate,配置管理,jpa)