我在使用MySQL的Sun GlassFish Enterprise Server上运行Spring和Hibernate的JPA实现。Query.executeUpdate()导致XAResource异常
当我尝试从数据库中删除的东西:
Query q = entityManager.createQuery("DELETE FROM SomeEntity e");
q.executeUpdate();
我得到的错误:
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()所有其他查询工作:
Query q = entityManager.createQuery("SELECT e FROM SomeEntity e");
q.getResultList();
由于某些原因,JDBC驱动程序无法获得executeUpdate()
的连接,但它适用于getResultList()
。应用程序的MySQL帐户拥有包括INSERT和DELETE在内的所有权限。
您是否尝试过使用您的MYSQL版本附带的驱动程序? – 2009-08-18 03:18:19