gpt4 book ai didi

jpa - 无法使用 @PersistenceContext 注入(inject) RESOURCE_LOCAL 容器管理的 EntityManager

转载 作者:行者123 更新时间:2023-12-04 00:36:13 24 4
gpt4 key购买 nike

我正在使用 JBoss AS 7.1.1 并且能够配置新的 JTA 数据源并将其连接到我的 EJB 使用

@PersistenceContext(unitName="TestPU")
private EntityManager entityManager;

当我尝试使用 RESOURCE_LOCAL PersistenceUnit 时,我收到错误消息说我无法使用 @PersistenceContext 注入(inject) RESOURCE_LOCAL PU。

我已将我的 persistence.xml 配置如下:
<persistence-unit name="TestPU" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/xy"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password" value="blah"/>
<property name="hibernate.hbm2ddl.auto" value="update" />
</properties>
</persistence-unit>

在我的 DAO 中,
@Stateless
public class UserDAO {
@PersistenceContext(unitName="TestPU")
private EntityManager entityManager;


}

当我在 AS 7.1.1 上部署我的应用程序时,我收到以下错误。
JBAS011428: Cannot inject RESOURCE_LOCAL container managed EntityManagers using @PersistenceContext
at org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor$1.handle(ModuleJndiBindingProcessor.java:169)
at org.jboss.as.ee.component.ClassDescriptionTraversal.run(ClassDescriptionTraversal.java:54)
at org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor.processClassConfigurations(ModuleJndiBindingProcessor.java:162)
at org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor.deploy(ModuleJndiBindingProcessor.java:155)
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
... 5 more

将 RESOURCE_LOCAL PU 与@PersistenceContext 一起使用的任何解决方案?

最佳答案

JTA : 在 Java EE 环境中,事务由容器管理,默认情况下它的 JTA交易。您可以通过查找或注入(inject)来获取实体管理器。

资源_本地:在 Java SE 中,应用程序必须显式管理事务,并且资源本地事务是 native 事务。您必须创建 EntityManagerFactory & 然后可以从中创建实体管理器。

在应用服务器中部署它时,更改 transaction-typeJTA在persistence.xml 中。

关于jpa - 无法使用 @PersistenceContext 注入(inject) RESOURCE_LOCAL 容器管理的 EntityManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10117687/

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