gpt4 book ai didi

java - 资源本地到 JTA

转载 作者:行者123 更新时间:2023-11-30 04:27:43 25 4
gpt4 key购买 nike

我正在开发一个Web应用程序,我必须使用我从未使用过的JTA。我开始使用 EntityManager 但它似乎在这里不起作用。当我使用 EntityManager 时,我收到此消息:

Only persistence units with transaction type JTA can be used as a container managed entity manager.

简而言之,我有这段代码:

@PersistenceContext(unitName = "zJSF2PU")
private EntityManager em;
em.getTransaction().begin();
//some code
em.getTransaction().commit();

如果没有 EntityManager,我该如何做到这一点?

最佳答案

在您的 ejb 项目 META-INF/persistence.xml 中,您必须具有以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<persistence>
<persistence-unit name="myPersistenceUnitNamePersonalised" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>jdbc/MySQL</jta-data-source>
<properties>
<property name="eclipselink.ddl-generation" value="drop-and-create-tables" />
<property name="eclipselink.ddl-generation.output-mode" value="database" />
<property name="eclipselink.logging.level" value="FINE" />
</properties>
</persistence-unit>
</persistence>

并且您必须在您的应用程序服务器(jboss、tomcat、glassfish)中声明这一点

您需要搜索如何在应用程序服务器中添加数据源和持久性单元...

就是这样......他们通过 jndi 进行通信

关于java - 资源本地到 JTA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15453797/

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