JBoss 5.1:使用 JPA 休眠

Posted

技术标签:

【中文标题】JBoss 5.1:使用 JPA 休眠【英文标题】:JBoss 5.1: Hibernate with JPA 【发布时间】:2012-04-13 11:44:19 【问题描述】:

我有两个关于 JBoss 5.1 的问题要问。我们正在从 JBoss 4.2 迁移到 JBoss 5.1。

我们还使用 Java 1.6 和 JPA 2.0 以及 Hibernate 3.6 作为提供者。

我的问题是:

    是否可以将 Hibernate 3.6+ 与 JBoss 5.1 一起使用。如果是,那么如何? JPA 2.0 怎么样?我知道 JBoss 5.1 带有 JPA 1.0 兼容性。我们可以使用 JPA2 吗?

由于我们无法对 JBoss 安装进行任何类型的配置,所有的修复都只需要在我们的应用程序中完成。

提前致谢, 贾斯B

【问题讨论】:

【参考方案1】:

我今天刚遇到同样的问题,在尝试了很多替代方案并到处询问后,答案是否定的

您不能将 JPA 2.0 与 Jboss 5.1 一起使用(如果您无法更改服务器的配置,则更是如此)

但我见过 hibernate3.X 在 Jboss5.1 上工作,但从来没有使用注解功能:只有旧的 XML 配置方式。

现在,在我看来,您有 2 个解决方案:要求服务器升级或以旧方式更改您的数据访问系统。

【讨论】:

有人能够弄清楚如何实际集成 JPA 2.0 还是这个答案不正确? 就我而言,从那时起服务器在生产中升级:没有更多问题!【参考方案2】:

这样做:

1) 将 jboss-classloading.xml 添加到 /src/main/webapp(我使用的是 Maven):

内容:

<?xml version="1.0" encoding="UTF-8"?>

<classloading xmlns="urn:jboss:classloading:1.0"

         domain="$UNIQUE_DOMAIN_NAME"

         export-all="NON_EMPTY"

         import-all="false"

         parent-first="false">

</classloading>

2) 修改$JBOSS_INSTALL_DIRECTORY/jboss-as/server/$PROFILE/conf/bootstrap/deployers.xml,在末尾添加如下内容:

<bean name="IgnoreFilesDeployer"

class="org.jboss.deployers.vfs.spi.deployer.AbstractIgnoreFilesDeployer"



</bean>

3) 在META-INF文件夹中创建一个文件JBOSS-IGNORE.TXT,内容如下:

WEB-INF/classes/META-INF/persistence.xml

4) 我已将我的 persistence.xml 重命名为 spring-persistence.xml 并将此文件添加到 context.xml 中:

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
      <property name="persistenceXmlLocation" value="classpath:/META-INF/spring-persistence.xml"/>
           ....
</bean>

5)我还修改了 spring-persistence.xml(保存在 webapp\META-INF 文件夹中的 persistence_2_0.xsd)为

 <persistence version="2.0"
 xmlns="http://java.sun.com/xml/ns/persistence"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="file:///persistence_2_0.xsd 
        http://java.sun.com/xml/ns/persistence">
....
</persistence>

【讨论】:

以上是关于JBoss 5.1:使用 JPA 休眠的主要内容,如果未能解决你的问题,请参考以下文章

加速休眠初始化

为啥休眠在获取较少行数时较慢?

JBoss EAP 6.4 -> 7.1 使用休眠 4 而不是默认休眠 5

使用 jsp 和 jboss 休眠

JBoss EAP 7.2 Oracle 休眠方言

休眠条件查询到 JPA 条件查询