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 休眠的主要内容,如果未能解决你的问题,请参考以下文章