首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ResourceLocal到JTA

ResourceLocal到JTA
EN

Stack Overflow用户
提问于 2013-03-17 03:35:45
回答 3查看 5.2K关注 0票数 1

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

代码语言:javascript
运行
复制
Only persistence units with transaction type JTA can be used as a container managed entity manager.

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

代码语言:javascript
运行
复制
@PersistenceContext(unitName = "zJSF2PU")
private EntityManager em;
em.getTransaction().begin();
//some code
em.getTransaction().commit();

没有EntityManager我该怎么做呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-17 17:01:20

我终于能够解决我的问题了。根据我的搜索,例如,当你在ManagedBeans中使用JTA时,你不能使用EntityManager。但是,它可以在无状态bean中使用,然后我们可以将这个无状态Bean注入到ManagedBean中并使用它的方法。具体步骤如下:

EJB

  • 创建EJB (一个带有@Stateless annotation)

  • move的简单类,该方法使用指向EJB

  • 的EntityManager将EJB注入到您的托管bean中(使用@EJB注释),并调用相关方法

有关更多信息,请参阅另一篇文章:JTA & MySQL

票数 1
EN

Stack Overflow用户

发布于 2013-03-17 03:52:56

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

代码语言:javascript
运行
复制
<?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>

你必须在你的Application Server (jboss,tomcat,glassfish)中声明这一点

您需要搜索如何在Application Server中添加数据源和持久性单元...

就是这样..。他们通过jndi交流。

票数 1
EN

Stack Overflow用户

发布于 2013-03-17 04:10:30

  1. 从对transaction-type="RESOURCE_LOCAL"em.getTransaction()调用中删除em.getTransaction()。注入javax.transaction.UserTransaction (JTA)并使用其begin/commit/rollback方法。或者,将EM注入无状态的EJB,并允许EJB容器自动管理事务。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15453797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档