Hibernate Provider的WebSphere 7 Entity Manager创建问题?

时间:2015-12-15 08:35:57

标签: java hibernate websphere-7

我一直在努力 服务器无法从EntityManagerFactory提供程序为默认持久性单元创建org.hibernate.ejb.HibernatePersistence工厂 当我尝试在WebSphere 7 + Oracle上运行Web应用程序(.war)时。到目前为止,这在tomcat + MySql下运行良好。 我的persistance.xml的配置

<persistence-unit name="default">
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
        <non-jta-data-source>src/test</non-jta-data-source>     
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.Oracle10gDialect"/>
            <property name="hibernate.hbm2ddl.auto" value="validate"/>
            <property name="hibernate.connection.release_mode" value="after_transaction"/>            
    </persistence-unit>

谷歌搜索后有几个解决方案。但即使在尝试了大约2天之后也没有运气。 要解决此问题,我们是否需要在WebSphere中安装任何修订包? 请在下面的链接中找到堆栈跟踪文件。

https://www.ibm.com/developerworks/community/forums/html/topic?id=e54136aa-fbe0-4576-a41c-4b438475f0a5

1 个答案:

答案 0 :(得分:1)

在WebSphere v7中使用容器管理的JPA,您需要安装feature pack for JPA,它只支持JPA 2.0。

根据你的日志看起来你正在使用的是JPA 2.1的Hibernate 4.3。 您无法将其与经典WebSphere Application Server一起使用,请参阅Deploying application using Hibernate JPA 2.1 to IBM WebSphere以获取更多详细信息。

因此,您需要降级到Hibernate 4.2,使用应用程序管理的实体管理器,或迁移到完全支持JPA 2.1的WebSphere Liberty Profile Server 8.5.5.6或更高版本。

如果您的应用程序适用于Tomcat,我建议您尝试使用WebSphere Liberty,它也是轻量级,开发人员友好的服务器,可免费下载 - https://developer.ibm.com/wasdev/