`
猜不透
  • 浏览: 133672 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Could not open JPA EntityManager for transaction

阅读更多
Spring2.5+JPA+Struts1.3 整合开发出现了:Could not open JPA EntityManager for transaction;

总结了一下几点
1.数据库方言的问题 下列是各数据库方言
DB2  org.hibernate.dialect.DB2Dialect 
DB2 AS/400  org.hibernate.dialect.DB2400Dialect 
DB2 OS390  org.hibernate.dialect.DB2390Dialect 
PostgreSQL  org.hibernate.dialect.PostgreSQLDialect 
MySQL  org.hibernate.dialect.MySQLDialect 
MySQL with InnoDB  org.hibernate.dialect.MySQLInnoDBDialect 
MySQL with MyISAM  org.hibernate.dialect.MySQLMyISAMDialect 
Oracle (any version)  org.hibernate.dialect.OracleDialect 
Oracle 9i/10g  org.hibernate.dialect.Oracle9Dialect 
Sybase  org.hibernate.dialect.SybaseDialect 
Sybase Anywhere  org.hibernate.dialect.SybaseAnywhereDialect 
Microsoft SQL Server  org.hibernate.dialect.SQLServerDialect 
SAP DB  org.hibernate.dialect.SAPDBDialect 
Informix  org.hibernate.dialect.InformixDialect 
HypersonicSQL  org.hibernate.dialect.HSQLDialect 
Ingres  org.hibernate.dialect.IngresDialect 
Progress  org.hibernate.dialect.ProgressDialect 
Mckoi SQL  org.hibernate.dialect.MckoiDialect 
Interbase  org.hibernate.dialect.InterbaseDialect 
Pointbase  org.hibernate.dialect.PointbaseDialect 
FrontBase  org.hibernate.dialect.FrontbaseDialect 
Firebird  org.hibernate.dialect.FirebirdDialect

2.导入的jar包可能错误################################
dist\spring.jar  
dist\modules\spring-webmvc-struts.jar  
lib\jakarta-commons\commons-logging.jar、commons-dbcp.jar、commons-pool.jar  
lib\aspectj\aspectjweaver.jar、aspectjrt.jar  
lib\cglib\cglib-nodep-2.1_3.jar  
lib\j2ee\common-annotations.jar  
lib\log4j\log4j-1.2.15.jar  
 
加入jpa的hibernate的实现包  
 
这里JPA的实现采用hibernate,需要使用到下面的jar文件  
 
Hiberante核心包(8个文件)  
hibernate-distribution-3.3.1.GA  
---------------------------------------------  
hibernate3.jar  
lib\bytecode\cglib\hibernate-cglib-repack-2.1_3.jar  
lib\required\*.jar  
 
Hiberante注解包(3个文件):hibernate-annotations-3.4.0.GA  
------------------------------------------------------------------------------------  
hibernate-annotations.jar  
lib\ejb3-persistence.jar、hibernate-commons-annotations.jar  
 
Hibernate针对JPA的实现包(3个文件):hibernate-entitymanager-3.4.0.GA  
------------------------------------------------------------------------------------------------------  
hibernate-entitymanager.jar  
lib\test\log4j.jar、slf4j-log4j12.jar  

3.注意persistence.xml#####################

<?xml version="1.0" encoding="UTF-8"?>  
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">  
    <persistence-unit name="xxx" transaction-type="RESOURCE_LOCAL">  
      <properties>  
         <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>  
         <property name="hibernate.connection.driver_class" value="org.gjt.mm.mysql.Driver"/>  
         <property name="hibernate.connection.username" value="root"/>  
         <property name="hibernate.connection.password" value="root"/>  
         <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/itcast?useUnicode=true&amp;characterEncoding=UTF-8"/>  
         <property name="hibernate.max_fetch_depth" value="3"/>  
         <property name="hibernate.hbm2ddl.auto" value="update"/>  
      </properties>  
  </persistence-unit>  
</persistence>

4.applicationContext.xml##################
<?xml version="1.0" encoding="UTF-8"?>  
<beans xmlns="http://www.springframework.org/schema/beans" 
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xmlns:context="http://www.springframework.org/schema/context" 
       xmlns:aop="http://www.springframework.org/schema/aop" 
       xmlns:tx="http://www.springframework.org/schema/tx" 
       xsi:schemaLocation="http://www.springframework.org/schema/beans  
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd  
           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd  
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd  
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">  
    <!-- 启动注解依赖注入 -->  
     <context:annotation-config/>  
     <!-- 作用:跟hibernate的sessionFactory的作用是一样的,是一个连接工厂的对象,使用的是spring的jap的连接工厂 -->  
     <!-- persistenceUnitName 持久化单元名称 这个是要在src的META-INF配置 -->  
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">  
      <property name="persistenceUnitName" value="xxx"/> <!-- 这里的value="xxx"是persistence.xml的   name="xxx" -->

</bean>  
  <!-- 配置jpa的事务管理容器 -->  
<bean id="txManager" class="org.springframework.orm.jpa.JpaTransactionManager">  
    <property name="entityManagerFactory" ref="entityManagerFactory"/>  
  </bean>  
  <!-- 开启注解方式启动事务管理 -->  
<tx:annotation-driven transaction-manager="txManager"/>  
分享到:
评论

相关推荐

    OpenJPA 2.2.1 API (CHM格式)

    OpenJPA  OpenJPA 是 Apache 组织提供的开源项目,它实现了 EJB 3.0 中的 JPA 标准,为开发者提供功能强大、使用简单的持久化数据管理框架。OpenJPA 封装了和关系型数据库交互的操作,让开发者把注意力集中在编写...

    Open JPA2 employee 简单例子

    OpenJPA2是一个开源的对象关系映射(ORM)框架,它是Java Persistence API(JPA)规范的实现。在这个“Open JPA2 employee简单例子”中,我们将深入理解如何使用OpenJPA2来处理数据库中的员工数据。这个示例将帮助...

    Spring和openJPA集成

    Spring 和 OpenJPA 集成是企业级Java开发中常见的技术组合,主要用于构建数据持久化层。Spring 是一个强大的轻量级应用框架,而 OpenJPA 是一个开源的 Java Persistence API (JPA) 实现,它允许开发者将对象关系映射...

    openjpa 源码 下载 帮助开发人员调试

    OpenJPA,全称Open Java Persistence API,是Apache软件基金会的一个开源项目,它实现了Java持久化API(Java Persistence API,JPA),为Java开发者提供了一种标准的方式来管理和持久化应用程序中的对象。...

    openjpa 写的一个例子

    OpenJPA,全称Open Java Persistence API,是Java平台上的一个开源对象关系映射(ORM)框架,它实现了Java Persistence API(JPA),用于管理Java应用程序中的持久化数据。在这个"openjpademo"示例中,我们将会探讨...

    Spring中使用OpenJPA

    OpenJPA(Java Persistence API)则是Java平台上的一个ORM(对象关系映射)工具,它实现了JSR-317规范,使得开发者可以方便地在Java应用程序中操作数据库。本篇将详细讲解如何在Spring项目中集成并使用OpenJPA。 ...

    openjpa范例及实例工程

    默认情况下,当应用程序第一次获取实体标识时,OpenJPA 框架从数据库中一次性获取 50 个连续的实体标识缓存起来,当下一次应用程序需要获取实体标识时,OpenJPA 将首先检测缓存中是否存在实体标识,如果存在,Open...

    openJpa的应用,感觉还可以

    OpenJPA(Open Java Persistence API)是Apache软件基金会下的一个开源项目,它是Java持久层标准JPA(Java Persistence API)的一个实现。JPA是Java EE平台中的一个重要组件,用于管理和处理应用程序中的对象-关系...

    通过 WebSphere Application Server V6.1 利用 OpenJPA

    安装OpenJPA的步骤通常包括下载OpenJPA的jar文件,将其添加到服务器的类路径中,并在服务器配置中指定OpenJPA作为默认的持久化提供者。 接下来,我们需要创建一个JPA项目。这涉及定义实体类,这些类代表数据库中的...

    openJPA官方手册

    ### OpenJPA官方手册知识点概览 #### 一、引言 - **OpenJPA**:作为Apache项目的一部分,OpenJPA是一个开源的Java持久化框架(Java Persistence Framework),它支持Java Persistence API (JPA) 的规范。OpenJPA...

    openjpa jar

    OpenJPA,全称为Open Java Persistence API,是Apache软件基金会下的一个开源项目,主要目标是实现Java持久化规范,即JPA(Java Persistence API)。JPA是Java EE平台中的一个核心组件,它提供了一种标准的方式来...

    jsf、openJpa学习

    **OpenJPA**(Open Java Persistence API)是Apache软件基金会的一个开源项目,它是Java持久层规范JPA(Java Persistence API)的实现,用于处理对象关系映射(ORM)。OpenJPA提供了一个框架,使得Java对象可以直接...

    Spring MVC+OpenJPA框架

    Spring MVC和OpenJPA是Java开发中常用的两个框架,它们分别在Web应用和持久层处理上发挥着重要作用。Spring MVC是Spring框架的一部分,用于构建高效、灵活的Web应用程序,而OpenJPA则是一个实现了Java Persistence ...

    Apache OpenJPA 2.1 User's Guide

    ### Apache OpenJPA 2.1 用户指南:Java Persistence API 的深入解析 #### 一、简介 Apache OpenJPA 2.1 是基于 Sun Microsystems 的 Java Persistence 2.0 API (JSR-317 JPA 2.0) 规范实现的一种透明持久化 Java ...

    openjpa-manual

    ### OpenJPA-Manual 关键知识点解析 #### 一、OpenJPA介绍 **1.1 关于本文档** 本文档旨在提供一个全面且深入的指南,帮助开发人员理解和掌握Java Persistence API(JPA)的核心概念及其在Apache OpenJPA中的实现...

    jpa--7.api(EntityManager其他方法)

    jpa--7.api(EntityManager其他方法)jpa--7.api(EntityManager其他方法)jpa--7.api(EntityManager其他方法)jpa--7.api(EntityManager其他方法)

    OpenJPA API 文档 chm格式

    OpenJPA API 文档 chm格式

    JPA连接数据库,非常详细

    总的来说,这个例子展示了如何使用JPA通过Apache OpenJPA连接到Oracle数据库,并进行了基本的日志配置以及`EntityManager`的管理,这些都是在Java应用中进行数据库操作的基础。在实际开发中,这些配置和代码可以作为...

Global site tag (gtag.js) - Google Analytics