我在使用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