首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Query.executeUpdate()导致XAResource异常

Query.executeUpdate()导致XAResource异常
EN

Stack Overflow用户
提问于 2009-08-17 22:48:41
回答 2查看 1.9K关注 0票数 0

我正在使用MySQL的上运行Spring和Hibernate的GlassFish实现。

当我尝试从数据库中删除内容时:

代码语言:javascript
复制
Query q = entityManager.createQuery("DELETE FROM SomeEntity e");
q.executeUpdate();

我得到了错误:

代码语言:javascript
复制
Caused by: java.sql.SQLException: Error in allocating a connection. Cause: java.lang.RuntimeException: Got exception during XAResource.start:
at com.sun.gjc.spi.base.DataSource.getConnection(DataSource.java:115)
at org.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:69)
at org.hibernate.jdbc.AbstractBatcher.openConnection(AbstractBatcher.java:550) 

但是,调用getResultList()的所有其他查询都有效:

代码语言:javascript
复制
Query q = entityManager.createQuery("SELECT e FROM SomeEntity e");
q.getResultList();

由于某些原因,JDBC驱动程序无法连接到executeUpdate(),但它可以连接到getResultList()。应用程序的MySQL帐户拥有所有权限,包括插入和删除。

EN

回答 2

Stack Overflow用户

发布于 2009-08-24 20:45:10

我假设您正在使用jta-datasource。我认为,您还没有启动任何事务。或者你可能在你的数据源上有一些问题。因此,您应该测试您的数据源(您可以同时定义jta-data-source和非jta-data-source)。并且您需要确保所有更新都是在事务上下文中完成的。

票数 0
EN

Stack Overflow用户

发布于 2009-10-16 06:34:37

一般而言,XAResource意味着您处于分布式事务中。在这种情况下,对于DB数据源和连接,必须使用XA驱动程序(例如com.mysql.jdbc.jdbc2.optional.MysqlXADataSource)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1290925

复制
相关文章

相似问题

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