gpt4 book ai didi

hibernate - JBoss AS7自动加载JPA

转载 作者:行者123 更新时间:2023-12-02 23:07:57 24 4
gpt4 key购买 nike

我有一个使用 JPA/Hibernate 和 Google Guice 的应用程序。 Guice 在 ServletContextListener 中启动,并设置 EntityManagerFactory 本身。

该应用程序在 Tomcat 7 上运行良好,但当我部署到 JBoss AS7 时,它失败了,因为 JBoss 决定在调用我的 ServletContextListener 之前自动设置 JPA。

如何让 JBoss 不自动初始化 JPA,而是等待我的 ServletContextListener 来执行此操作?

更新

根据詹姆斯提供的以下链接:

During application deployment, JPA use is detected (e.g. persistence.xml or @PersistenceContext/Unit annotations) and injects Hibernate dependencies into the application deployment.

https://docs.jboss.org/author/display/AS71/JPA+Reference+Guide#JPAReferenceGuide-Introduction

我需要弄清楚如何禁用这个“自动检测”功能。

更新#2

可以通过将以下属性添加到 persistence.xml 来禁用 JPA 的容器管理:

<property name="jboss.as.jpa.managed" value="false" />

根据this topic ,截至 2012 年 2 月,此功能仅在夜间版本中可用。

最佳答案

JBoss AS7 是一个完整的 Java EE 服务器。这意味着 JPA 实现与其捆绑在一起。在 Tomcat 中,您必须提供自己的 JPA 实现,并且本质上就像在 Java SE 中一样运行 JPA。

我建议您阅读 JPA reference AS7 的文档。

您还可以获得 CDI,因此不需要 Guice。您可能可以使用 Guice 代替 CDI,但说实话,我无法告诉您如何操作:-)

关于hibernate - JBoss AS7自动加载JPA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10231575/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com