2009-08-17 22 views
0

に私は、MySQLとSunのGlassFishのEnterprise Server上JPAの春とHibernateの実装を実行していますよ。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()のために接続することができませんいくつかの理由

まだそれは0123のために働きます。アプリケーションのMySQLアカウントには、INSERTとDELETEを含むすべての権限があります。

+0

(例えばcom.mysql.jdbc.jdbc2.optional.MysqlXADataSourceの)DBデータソースとの接続のために、この場合、XAドライバを使用する必要がありますか? –

答えて

0

私はあなたがJTA-データソースを使用していると仮定しています。そして、私は、あなたは取引を開始していないと思います。または、おそらく、あなたはデータソースにいくつかの問題があります。したがって、データソースをテストする必要があります(jta-data-sourceとnon-jta-data-sourceの両方を定義できます)。また、すべての更新がトランザクションのコンテキストで行われることを忘れないでください。一般のXAResourceに

0

では、分散トランザクション内であることを意味しています。あなたはMYSQLのバージョンに付属しているドライバを使用してみました

関連する問題